关于HID设备读数据的有关问题

关于HID设备读数据的问题
小弟在写一个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