阅读:1780回复:3
关于用VC实现与HID设备通信的问题(1)
DeviceHandle=CreateFile
(detailData->DevicePath, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, (LPSECURITY_ATTRIBUTES)NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL); createfile放在do while 循环中用来枚举hid设备并打开。但是循环第一次不知为啥会显示 说createfile 访问被拒绝,第二次循环找到指定设备,createfile 成功。如何规避第一次 的情况? Result = HidD_GetInputReport (DeviceHandle, InputReport, Capabilities.InputReportByteLength); 我想用上面的函数读取HID设备信息,但是系统提示这是“错误函数”,这是怎么回事? Result = ReadFile (DeviceHandle, InputReport, Capabilities.InputReportByteLength, &NumberOfBytesRead, (LPOVERLAPPED) &HIDOverlapped); 想用readfile 读取HID 设备信息,但是系统提示“非法句柄”(0xC0000008) 这是怎么回事? |
|
沙发#
发布于:2008-10-25 09:53
调试发现,Capabilities.InputReportByteLength 的值为0
哪里出错了? |
|
板凳#
发布于:2008-10-27 09:34
Capabilities.InputReportByteLength 的值为0
因为设备的没有输入报告. |
|
地板#
发布于:2008-10-29 09:22
你的hid是啥设备?好像键盘鼠标时独占的,不能这样打开,即使打开也不能读写
另外,为啥用循环尼? |
|