如何与HID设备通讯,急,两个星期过去了!
HID设备插入后,系统加了通用驱动USBHID.DLL,但此驱动的DEVICEIOCONTROL在PDD和MDD层并没有做什么操作。那我如何发送数据给我的HID设备(我知道我的HID设备需要什么位串)?
谢谢!两个星期过去了!快疯了!
[解决办法]
不知道,不能帮你解决问题,帮你顶一下吧!
[解决办法]
一定要用HID设备类么?貌似鼠标啊键盘啊不受理host发来的指令哦。
firmware是不是自己写?用USBDI函数发送SetReport,firmware自行处理。
[解决办法]
我也在搞HID设置的读写,看了USB驱动协议发方面的,但是真的很难,还是没有搞出来,可能我还是没能完全理解USB协议,这些开发都是汇编的,很少用到C,所以这方面的交流也很难,都是需要高人指导啊。
[解决办法]
用HidD_SetFeature试试。
Only user-mode applications can call HidD_SetFeature. Kernel-mode drivers can use the IOCTL_HID_SET_FEATURE request.
[解决办法]
应该主要工作在 PDD这里, 看看 MDD中需要那些接口,一个一个来实现,增加调试信息一个一个看了 ,, 看 Help
[解决办法]
我也遇到了同样的问题,还没解决。
[解决办法]
USBHID.DLL 并不是最终的 HID驱动,这个驱动会根据HID设备的VendorID,ProductID,UsagePage等信息加载最终的HID驱动
配置是在注册表HKEY_LOCAL_MACHINE\Drivers\HID\LoadClients\ 下面,会依次查询idVendor_idProduct_bcdDevice\bInterface_bCollection\UsagePage_Usage
如鼠标驱动的配置是
[HKEY_LOCAL_MACHINE\Drivers\HID\LoadClients\Default\Default\1_2\Mouse]
"DLL"="MOUHID.DLL"
"RemoteWakeup"=dword:00000001
发送信息调用lpSetReport就可以,参考wince带的例子
%_WINCEROOT\Public\Common\OAK\Drivers\USB\Class\HID\CLIENTS\CONSHID