I have designed code for our 64 byte xfer USB HID device. It works great most of the time. On Occasion, I can see an 8 (time varies) second lag between reading the IN report data, and actually getting it. With a USB analyzer, the data gets back into windows in the proper amount of time, but occasionally (once/20 minutes) the data won't get back to my windows app for 8 or so seconds. Any clues?
Report format error?
HID exchanges reports, whose format is defined in the report descriptor. - The size of the report is greater or less than defined. - The report doesn't start with report ID, when your report descriptor defines any report ID.
Sniffer can catch such a report with format error, sent by device. But PC HID driver blocks the report.
> HID IN Report
If it were read by HidD_GetInputReport(), this call returns with error after timeout of five seconds or so.
Tsuneo
Don't think it is a format error - thousands and thousands of packets are transferred, and occasionally, a time lag occurs. The data does eventually get back, and is always correct.
Hmm.. Is your PC application blocked by any heavy (background) process? typeperf commandline tool takes log of performance of your application at every second.
typeperf "\your_PC_application\% processor time" > a_log.txt
CTRL-C stops the log. Do you see any low-performance of your application, while the long delay occurs?
typeperf technet.microsoft.com/.../bb490960.aspx