![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
SetupDiChangeState
Иксик © (2004-01-09 11:43:00)Кто-нибудь знает как использовать сабж? Мне нужно чтобы отключать/включать сетевую.
Иксик (2004-01-10 12:47:00) [1]Люди, кто-нибудь знает параметры CM_Disable_DevNode/CM_Enable_DevNode? Очень нужно.
Иксик (2004-01-10 09:07:00) [2]Спасибо большущее, ты единственный кто ответил на нескольких форумах :)
Я пока
Еще вопрос: структуры типа SP_DEVINFO_DATA, LOG_CONF, PIO_RESOURCE нужно описывать вручную или они где-то есть (я не нашел)?
Вообще где можно на эту тему почитать чего-нибудь?
Иксик (2004-01-10 09:07:00) [3]Спасибо большущее, ты единственный кто ответил на нескольких форумах :)
Еще вопрос: структуры типа SP_DEVINFO_DATA, LOG_CONF, PIO_RESOURCE нужно описывать вручную или они где-то есть (я не нашел)?
Вообще где можно на эту тему почитать чего-нибудь?
han_malign (2004-01-09 17:26:00) [4]Боюсь придется тебе ковырять Cfgmgr32, SetupDiChangeState немного из другой оперы...
Вероятнее всего CM_Disable_DevNode/CM_Enable_DevNode, последовательность примерно такая
var
ret : CONFIGRET;
hDevInfoSet : HDEVINFO;
DevInfoData : SP_DEVINFO_DATA;
conf : LOG_CONF;
iter : DWORD;
resDes : RES_DES;
res : PIO_RESOURCE;
siz{, devStatus,devPrNo} : ULONG;
i : integer;
_s,_d : ShortString;
begin
Result:=false;szConflictDevice:='';
if(qwBaseAddress>qwEndAddress)then exit;
//Создание списка информации об устройствах
hDevInfoSet := SetupDiGetClassDevsA(Nil,Nil,0,DIGCF_ALLCLASSES);
if((hDevInfoSet=0)or(hDevInfoSet=INVALID_HANDLE_VALUE))then begin
flogln('di.log','Create DeviceInfoList failed 0x' + HexDWord(GetLastError));
exit;
end;
DevInfoData.cbSize := sizeof(DevInfoData);
i:=0;
while SetupDiEnumDeviceInfo(hDevInfoSet,i,DevInfoData)do begin
inc(i);
if(SetupDiGetDeviceRegistryPropertyA(
hDevInfoSet,
DevInfoData,
...,//????
nil,
_s[1],
255,
nil))
then _s:=PChar(@_s[1])
else flogln('di.log','Get Device Reg Prop failed 0x' + HexDWord(GetLastError));
if(_s=...)then begin //??? ret:=CM_Disable_DevNode(DevInfoData.DevInst,...);//???
Break;
end;
.................................