-
Доброго всем здравия! Такая вот возникла проблема у меня: Есть пара PCI устройств с известными VendorID, DeviceID, SubsystemID. С помощью ф-ий SetupDiEnumDeviceInfo и SetupDiGetDeviceRegistryProperty я успешно нахожу и получаю информацию об экземплярах этих устройств. Но никак не пойму как получить их LinkName, хоть убей! Если использовать ф-и SetupDiEnumDeviceInterfaces и SetupDiGetDeviceInterfaceDetail, то эти устройства не находятся. Люди мудрые, подскажите как получить этот несчастный LinkName?
-
-
> Если использовать ф-и SetupDiEnumDeviceInterfaces и SetupDiGetDeviceInterfaceDetail, > то эти устройства не находятся.
-
Хотел рассказать анекдот, но не буду... Ты код, что-ли, покажи где у тебя не вышло консенсуса с задачей...
-
Код такой же как и предложил Lacmus. Да, USB и HID устройства прекрасно находятся и открываются с помощью CreateFile, а вот с PCI-устройством проблемы, ибо какой GUID подставлять? Порыскав в реестре нашел ветку HLM\System\CurrentControlSet\Control\DeviceClasses, в которой перечислены узлы с названием GUIDов классов устройств, которые содержат списки устройств данного класса. Моих PCI-устройств там не оказалось. Для этих PCI есть драйвер, который присваивает устройству символьный линк, типа, PCIDev0, PCIDev1, ... Заметил еще, что линки для USB начинаются с \\?\, а для PCI - \\.\ Не спроста, наверное) В принципе есть возможность править и перекомпилить драйвер, если знать чего туда нужно дописать, чтобы устройство попало в перечисление интерфесов(SetupDiEnumDeviceInterfaces) Вот собственно и проблема)
-
При помощи SetupDiGetDeviceRegistryProperty меняя 3 параметр от 0 до 31 можно получить то, что тебе надо... Так размыто потому что точно не помню...
Может вопрос не в тему... Как зная все вышесказанное узнать прерывания, диапазон адресов ввода/вывода?
|