Создание виртуального устройства HID - PullRequest
8 голосов
/ 28 июня 2011

Я хотел бы создать виртуальное устройство HID (эмулировать его с помощью драйвера).

Он должен быть виден клиентам, которые реализуют стандартное обнаружение HID:

  • Call HidD_GetHidGuid () - получить HID GUID класса устройства
  • Вызовите SetupDiGetClassDevs () - Получить обрабатывать набор устройств, которые реализовать интерфейс HID
  • Вызовите SetupDiEnumDeviceInterfaces () - Для каждого устройства в возвращаемом наборе устройств, получить интерфейс информация для всех открытых HID интерфейсы.
  • Вызов SetupDiGetDeviceInterfaceDetail () - Для каждого интерфейса, полученного в предыдущий звонок, получить подробную информационный блок для этого интерфейса. Эта подробная информация включает в себя строка, которую можно передать CreateFile () чтобы открыть дескриптор устройство
  • Вызовите SetupDiDestroyDeviceInfoList () - Освободите набор информации об устройстве что было получено в звонке SetupDiGetClassDevs ().

Устройство также должно поддерживать чтение, поэтому CreateFile / ReadFile будет возвращать данные, предоставленные мной из драйвера.

Я действительно не знаю, с чего начать, так как у меня мало опыта. в ядре dev. (

Ответы [ 3 ]

7 голосов
/ 02 июля 2011

Некоторым людям повезло с проектом vmulti в качестве основы http://code.google.com/p/vmulti/

2 голосов
/ 27 ноября 2012

Вы должны написать драйвер, а затем использовать DevCon (Device Console Tool) с опцией install.


cmdInstall

Вариант cmdUpdate для установки драйвера при отсутствии соответствующего оборудования. Он создает новый экземпляр устройства с корневым перечислением и связывает его с составленным идентификатором оборудования, указанным в командной строке (который должен соответствовать идентификатору оборудования в INF). Это невозможно сделать на удаленной машине или в контексте Wow64.


http://code.msdn.microsoft.com/windowshardware/DevCon-Sample-4e95d71c

http://msdn.microsoft.com/en-us/library/windows/hardware/ff544707%28v=vs.85%29.aspx

http://msdn.microsoft.com/en-us/library/windows/hardware/ff544780%28v=vs.85%29.aspx

0 голосов
/ 24 августа 2012

см. Пример драйвера vhidmini ddk. Это было в версии 1830 DDK, но не в последней версии. в качестве альтернативы образец hidfake в книге Онея.

См. http://www.microsoft.com/mspress/books/sampchap/6262.aspx

...