Ищу виртуальный USB HID драйвер - PullRequest
4 голосов
/ 12 ноября 2009

Мы разработали специальный коммуникационный инструмент для использования на инвалидной коляске для управления освещением и т. Д. Мы используем Z-wave . У нас есть приложение для управления этими устройствами через ПК.

К сожалению, приложение ожидает USB-накопитель. Наш дизайн не позволяет USB-накопитель. Вместо этого мы используем модуль последовательного интерфейса, который связывается с компьютером через Bluetooth и виртуальный компорт. Мы знаем, что приложение использует стандартную виндривер HID. (не задействован сторонний водитель)

Нам было интересно, могли бы мы использовать драйвер «оболочки» HID, который имитирует идентификаторы USB и PnP таким образом, что приложение считает, что карта памяти подключена, а затем связывает данные виртуального компорта Bluetooth с приложением.

Ответы [ 3 ]

5 голосов
/ 16 ноября 2009

Да, я считаю, что это возможно, может быть довольно интересно, никогда не думал о моделировании устройства HID с ПК. Кто-нибудь в вашей группе имеет опыт разработки драйверов? Если нет, подготовьтесь к крутой кривой обучения.

Вопрос: под «флешкой» вы подразумеваете флэш-накопитель USB, содержащий файл с инструкциями, или какое-либо устройство HID, например мышь или джойстик, как следует из названия?

Это на самом деле не имеет значения, в любом случае, безусловно, можно написать драйвер для имитации его с ПК. Является ли это экономически выгодным для вашего магазина / проекта, чтобы поднять вас до такой степени, что вы можете сделать это главный вопрос. Это определенно не тот код, который вы можете вырезать на выходных.

3 голосов
/ 15 сентября 2011
0 голосов
/ 11 декабря 2013

Это довольно интересно ... Я хочу узнать больше о вашем существующем устройстве, то есть "USB-флешка на самом деле является радиопередатчиком".

Как он подключается к ПК? это через USB-кабель (как виртуальный COM-порт)? или Используете ли вы какие-либо адаптеры USB-UART (USB-RS232), такие как упомянутый в следующей ссылке (http://www.ftdichip.com/Products/Cables/USBRS232.htm) между вашим трансивером и ПК. Т.е. адаптер USB-Serial расположен между вашим устройством и ПК .

  1. Если ваше устройство напрямую подключено к USB-порту ПК (как виртуальный COM-порт), то у меня есть одно решение для вас. Нам необходимо разработать мини-драйвер WDM или WDF USB HID в режиме ядра, чтобы после установки нашего драйвера ваше устройство виртуального COM-порта было видно хосту ПК и приложению ПК как устройство USB HID. В этом мини-драйвере HID мы можем определить настраиваемую коллекцию HID верхнего уровня в дескрипторе отчета HID, чтобы все, что вы сказали в приложении, которое ожидает устройство как устройство USB HID, будет легко обмениваться данными через вызовы API HID Windows, такие как HidD_GetFeature , HidD_SetFeature, HidD_GetInputReport, HidD_SetOutputReport, даже функции ReadFile и WriteFile будут работать.

  2. Но если у вашего трансивера есть порт RS232 D9, вам, возможно, придется вставить адаптер USB-Serial, как я уже говорил ранее, на ч / б ПК и ваш трансивер. В этом случае нам необходимо разработать мини-драйвер UMDF USB Hid с настраиваемой коллекцией HID верхнего уровня в дескрипторе отчета HID. Этот драйвер будет полностью виртуальным драйвером и присоединяется к диспетчеру устройств вместе с действительным виртуальным COM-портом. HID-совместимое приложение будет связываться с этим виртуальным драйвером и видеть трансивер как устройство USB HID, хотя на самом деле это COM-порт. Драйвер UMDF позаботится о связи между виртуальным com-портом и приложением HID.

Пожалуйста, дайте мне знать, если у вас есть какие-либо сомнения или обратитесь за дальнейшими разъяснениями.

...