请问各位大虾~
我目前遇到一个HID设备,需要PC端不停接收数据回来,达到一定大小丢给上层处理(就是只要有report过来就需要readfile),我怕阻塞,所以想用线程的方式来写,但总感觉用的不是很对的样子,所以想请高手指点一下,最好能结合代码说明一下:         ReportEvent = CreateEvent(NULL, TRUE, FALSE, NULL); HidOverlapped.hEvent = ReportEvent;
HidOverlapped.Offset = 0;
HidOverlapped.OffsetHigh = 0;

bResult = ReadFile(handle,&lpBuffer, Capabilities.InputReportByteLength, &dwSize,
                            (LPOVERLAPPED) &HidOverlapped );
if (!bResult) 
{
printf("ReadFile failed: %lX\n", (unsigned long)GetLastError());
}
bResult = WaitForSingleObject(ReportEvent, MT_INTERVAL);

解决方案 »

  1.   

    HID设备参考
      

  2.   

    多谢三位的热心,再请教一下:
    1.可不可以通过callback函数把数据块传上去?
    2.如果这个callback函数是我创建readThread的函数的一个参数,类似下面这样,可以吗?或者说callback只能在xxxx里调用?
    void xxxx(viod *cb)
    {
      ...
      CreateThread(readThread,this);
      ...
    }
    UINT readThread()
    {
      ...
      WaitForSingleObject(ReportEvent, MT_INTERVAL); 
      ...
      Data[i]=*(buffer+i);
      cb;//调用Callback
    }