小弟在写一个HID设备识别读取的小程序,目前基本功能都已经实现,能够枚举扫描,通过VID和PID匹配识别设备.然后进行到读取数据这里的时候出了问题,请教下各位,帮我分析下看问题可能出在哪。
    
         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设备句柄一致,所以不知道是我程序写的不对还是硬件设备没设置好..