关于HID设备读数据的有关问题
关于HID设备读数据的问题
小弟在写一个HID设备识别读取的小程序,目前基本功能都已经实现,能够枚举扫描,通过VID和PID匹配识别设备.然后进行到读取数据这里的时候出了问题,请教下各位,帮我分析下看问题可能出在哪。
现在HID设备是定时的给我传递三个数字00 07 00,但是我执行readfile函数之后得到的返回值总是0,不解。hHandle我跟踪过来是正确的,与我前面匹配的HID设备句柄一致,所以不知道是我程序写的不对还是硬件设备没设置好..
------解决方案--------------------
up
小弟在写一个HID设备识别读取的小程序,目前基本功能都已经实现,能够枚举扫描,通过VID和PID匹配识别设备.然后进行到读取数据这里的时候出了问题,请教下各位,帮我分析下看问题可能出在哪。
- C/C++ code
int CMyXXXX::Read(unsigned char *pBuf,int nLen) //形参传递保存数据用的数组以及数据最大长度 { if (hHandle == NULL || hHandle == (HANDLE)-1)return 0; DWORD sult = 0; OVERLAPPED olSult; memset(&olSult,0,sizeof(OVERLAPPED)); olSult.hEvent = CreateEvent(NULL,TRUE,FALSE,NULL); if(::ReadFile(hHandle,pBuf,nLen,&sult,&olSult) == 0) { OutputDebugString("\r\nReadFile调用失败..."); } if (::WaitForSingleObject(olSult.hEvent,100)==WAIT_TIMEOUT) { ::CancelIo(hHandle); } else { ::GetOverlappedResult(hHandle,&olSult,&sult,TRUE); } CloseHandle(olSult.hEvent); return sult; }
现在HID设备是定时的给我传递三个数字00 07 00,但是我执行readfile函数之后得到的返回值总是0,不解。hHandle我跟踪过来是正确的,与我前面匹配的HID设备句柄一致,所以不知道是我程序写的不对还是硬件设备没设置好..
------解决方案--------------------
up