Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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;
.................................


Наверх

Титульная страница Поиск, карта сайта Написать письмо