Continue the discussion from libusb-devel mailing list.
The question is what is the theoretical speed limit for high speed
USB HID Device under Windows? Is it 8MB/sec or 24MB/sec?
Best regards,
Xiaofan
On Wed, Jun 16, 2021 at 2:58 PM Tim Roberts wrote:
On 6/15/21 11:30 PM, Xiaofan Chen wrote:
I have one more question with regard to the Windows driver.
…
However I read somewhere Windows HID driver will not able
to achieve 24.576MB/s and will only be much slower. Is that correct?Is it limited to 64KB/s based on the following document?
Input/Output/Feature Report Length: 64KB for In-box minidriver hidusb.
https://docs.microsoft.com/en-us/windows-hardware/drivers/hid/hid-transportsWell, limiting each report to 64KB does not imply a maximum bandwidth
of 64KB/s.This has never come up for me, so I don’t have the answer. As you know,
the vast majority of HID devices are low-bandwidth devices and typically
run full-speed. Maybe hidusb.sys doesn’t understand
multiple-transaction endpoints?Even if it understands multiple-transaction endpoints, the max speed is
like the following right?
64KB x 3 /125us = 1536 KB/sNo, not at all. If you have a maximum bandwidth endpoint, you’ll get
3072 bytes per microframe. That means the 64kB transfer is going to be
split up to span 21 microframes, or 3 complete frames. And that would
be 24MB/s. If they don’t support the multiple transactions, you’d get
1024 bytes per microframe, and the 64kB transfer would span 8 complete
frames, at 8MB/s.