![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
function GetDeviceIDList:TStringList; ??? [D3, D6, D7, Win95/98, WinME, Win2k, WinXP]
kirill_ru © (2003-01-10 00:49:00)Подскажите пожалуйста ,как получить список "Device ID" всех установленных в системе PCI устройств.Что-нибудь вроде subj.
Alex Konshin (2003-01-11 06:03:00) [1]На XP он называется \??GLOBAL
На самом деле в этом фолдере собраны символические линки на все устройства, которые можно открыть с помощью DeviceIoControl.
То есть там вроде как все устройства быть должны.
kirill_ru (2003-01-10 17:37:00) [2]У меня этот раздел представлен как \?? .
В этом разделе конечно хаос ,но "Device ID",типа "VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10"(соответствует Realtek RTL8139/810X Ethernet NIC) найти можно.Но они там как я уже писал не все.Точно не знаю но мне кажется этот список типа как в LINUX ,там драйвера могут быть как сами посебе(подгружаемые) а могут напрямую компилироваться в ядро.
Alex Konshin (2003-01-10 07:15:00) [3]А ты их где искал? Может ты просто чего-то не заметил или их просто и не должно быть? Как ты понял, эта утилита показывает объекты ядра NT, то есть, как мне кажется, она должна давать реальную картину. Хотя кто их знает - у них везде секреты.
Да, это действительно будет работать только для NT.
Если все-таки интересно, как получить эту информацию - смотри на моем сайте пример по Native API.
http://home.earthlink.net/~akonshin/index.htm
Наверно, это можно еще сделать через WMI, но я его не знаю.
kirill_ru (2003-01-10 05:51:00) [4]Я сначала было обрадовался потому как действительно в утилите отсутствуют два левых устройства ссылки на которые остались в системе (звуковуха и сеть) однако потом так и не нашёл в ней "device id" видеокарты(VEN_10DE&DEV_0171) и системного чипсета(VEN_8086&DEV_1130) которые на самом деле установленны.
К тому же как я понял утилита предназначенна только для NT(использует NTDLL.DLL), а мне и WIN9X нужно,там ключ "HKEY_LOCAL_MACHINE\Enum\PCI".Всёравно спаибо.
А вообще интересно, в разделе BaseNamedObjects напротив моей проги написано Type - "Mutant" :)
Alex Konshin (2003-01-10 03:44:00) [5]А если посмотреть утилитой winobj с www.sysinternals.com, то оно тоже там остается? Если нет - то могу научить как их читать также как это делает winobj. Если да, то увы, ничем помочь не могу...
kirill_ru (2003-01-10 01:12:00) [6]Этот список есть в ключе реестра "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum"(WIN2000/XP) ,но если к примеру добавить какое либо устройство,потом с ним загрузиться ,выключить компьютер и затем убрать его ,то "Device ID" этого устройства так и останется в реестре :( .
Как узнать действительно ли устройство с заданным "Device ID" присутствует в системе или это фантом ? В API подобных функций не нашёл ...