Нумерация PnP устройств в Win2000 DDK
Написал драйвер для PCI-модуля, разработанного нашей конторой (что-то типа устройства ввода).
Для доступа к нему из user mode как к файлу устройства в драйвере при добавлении устройства (AddDevice)
Вызываю IoRegisterDeviceInterface(), затем IoSetDeviceInterfaceState().
А как решить следующую проблему:
допустим у меня сейчас установлено 2 модуля, соответственно при вызове SetupDiEnumDeviceInterfaces() в user-mode, я получаю доступ к двум файлам устройств. На каждый модуль (и соответственно файл утсройства) приходят разные данные. Теперь берем и вынимаем из системы первый модуль. После вызова SetupDiEnumDeviceInterfaces(), я получаю доступ уже к одному файлу устройств, но раньше это был как бы второй файл, а теперь он стал первым. И я принимаю через этот модуль данные, считая что они с первого модуля, а на самом деле они со второго.
Можно ли как-то научить драйвер или пользовательскую прогу отличать первое устройство от второго?
Вообще, насколько я знаю, каждое PCI устройство имеет свой уникальный идентификатор, (шинный драйвер же различает как-то устройства), что-то типа PCI/VEN_xxxx&DEV_xxxx&SUBSYS_xxxxxxxx&REV_xx вот по нему можно попробовать в драйвере различать эти самые девайсы