Я пишу программу на C ++, которая должна проверять идентификатор устройства драйвера.
Мой ввод — это имя драйвера, которое должно отображаться в диспетчере устройств.
Я попытался Google, и я понял, что:
Я мог бы получить указатель драйвера, используя этот пример кода http://msdn.microsoft.com/en-us/library/ms682619%28VS.85%29.aspx
Я должен использовать функцию IRP_MN_QUERY_ID, чтобы получить идентификатор устройства http://msdn.microsoft.com/en-us/library/windows/hardware/ff551679(v=vs.85).aspx.
Тем не менее, я не смог найти никаких примеров или фрагментов кода о том, как на самом деле это сделать, и как эти две функции соединяются?
У меня нет опыта работы с драйверами, пример кода будет очень полезен …
На окнах нет идентификаторов устройства (как имя =)). Устройство соответствует идентификатору оборудования и совместимым идентификаторам. Из этого идентификатора система генерирует идентификатор экземпляра — однозначно идентифицирует устройство на конкретном порту на шине. Вы можете получить аппаратный / совместимый идентификатор без отправки IRP, используя функцию IoGetDeviceProperty (http://msdn.microsoft.com/en-us/library/windows/hardware/ff549203(v=vs.85).aspx), это проще, чем свернуть свой IRP.
Других решений пока нет …