IWDFDevice::CreateWdfFile возвращает ERROR_INVALID_FUNCTION?
-
19-09-2019 - |
Вопрос
Я пишу драйвер датчика UMDF для устройства, которое подключается к системе через Bluetooth и доступно как устройство ввода HID.Я увидел образец драйвера "Sensor Development Kit" и заметил, что он также работает с оборудованием Freescale через HID, хотя подключается к системе через USB.Есть ли какая-либо разница в способе взаимодействия драйвера UMDF с устройством в случае, если оно подключается к системе через Bluetooth?По какой-то причине я нахожу, что призыв к CreateWdfFile
ВОЗВРАТ ERROR_INVALID_FUNCTION
даже когда у меня есть устройство, сопряженное с системой.Я могу получить доступ к устройству напрямую через HID просто отлично.
В INF для драйвера я указал идентификатор оборудования следующим образом - HID\VID_1234&PID_5678
(здесь не использовались фактические идентификаторы).Достаточно ли этого для платформы UMDF, чтобы определить, какой драйвер ей следует использовать дальше по стеку?Или есть что-то еще, что нужно сделать?
Решение
Мне удалось решить эту проблему самому.Оказывается, я использовал неправильный идентификатор оборудования.По наитию я посмотрел, с какими аппаратными идентификаторами было зарегистрировано устройство Bluetooth в разделе HKLM\SYSTEM\CurrentControlSet\Enum\HID
и использовал другой идентификатор, который был там указан, и вуаля!- IWDFDevice::CreateWdfFile
сработало!:) И, конечно же, это довольно четко описано в MSDN здесь.Итак, все хорошо!