常规HidD_FlushQueue()到底做了什么?

时间:2016-03-11 13:02:58

标签: c++ windows usb hid

我正在使用USB-Hid类与C ++应用程序中的USB设备进行通信。 有人能告诉我,例程HidD_FlushQueue()究竟做了什么? https://msdn.microsoft.com/en-us/library/windows/hardware/ff538876%28v=vs.85%29.aspx

我在发送命令之前使用它来刷新输入队列。有人告诉我这样做是为了保证输入队列是空的。

这通常很有效,但在某些情况下,我的程序卡在这个功能中并且不会返回。 我没有使用一些访问队列可以阻止它的异步方法。是否可能,问题出在USB设备的一侧?有什么建议吗?

1 个答案:

答案 0 :(得分:0)

HID设备可以向主机发送输入报告。 Windows将这些报告累积在队列中。 HidD_FlushQueue()从队列中删除Windows累积的所有报告。

我在阅读主题的开头调用该函数并且我从未遇到过问题,尽管我的设备在请求之前不会发送报告。