2016-03-11 6 views
0

Я использую класс USB-Hid для связи с моим USB-устройством в приложении C++. Может ли кто-нибудь сказать мне, что делает программа HidD_FlushQueue()? https://msdn.microsoft.com/en-us/library/windows/hardware/ff538876%28v=vs.85%29.aspxЧто делает обычный HidD_FlushQueue()?

Я использую его, чтобы очистить входную очередь перед отправкой команды. Мне сказали сделать это, чтобы гарантировать, что входная очередь пуста.

Это нормально работает отлично, но в некоторых случаях моя программа застревает в этом funtion и не возвращается. Я не использую какие-то асинхронные методы, которые могут заблокировать очередь. Возможно ли, что проблема лежит на стороне устройства USB? Какие-нибудь советы?

ответ

0

Устройство HID может отправлять входные отчеты хосту. Windows накапливает эти отчеты в очереди. HidD_FlushQueue() удаляет все отчеты, собранные Windows из очереди.

Я вызываю функцию в начале моей строки чтения, и у меня никогда не было проблем, хотя мое устройство не отправляет отчеты, пока они не будут запрошены.

 Смежные вопросы

  • Нет связанных вопросов^_^