Is there a way to send fault tolerant USB communication over HID where the standard Windows driver doesn't throw BROKEN_PIPE when an error is detected?
In my experience, the generic HID driver in Windows is prone to surrender on the first sign of issues with HID bulk transfers. It sets the BROKEN_PIPE flag. Then all future communication is impossible unless the driver is reloaded with administrative privileges. I think this is also true for interrupt transfers.
The issue is not adding checksums and packet counters to the protocol. The issue is figuring out how to convince the Windows driver to never surrender, to do its utmost to deliver the packets (or drop them) when faced with adverse conditions.
Avoiding administrative privileges, and avoiding writing a special driver is paramount.
Can we pack the data in control transfers? Are these also prone to causing broken pipes? What is the UDP equivalent for USB?
I've tried to send bulk transfers over HID but these cause BROKEN_PIPE. I've also tried sending interrupt transfers but these also seem to cause BROKEN_PIPE. I would expect the existence of a UDP-like mode where the HID driver drops packets that are obviously bad but where the connection stays open. Where communication is best-effort and any data that gets through is allowed through without giving up.