Yes . I miss the good old days of simple interfaces written by coders.
HID looks to me like a "Standard" written by hardware manufacturers to obfuscate the operation of their devices to make it harder for third parties to write their own drivers.
Then windows comes along and makes it worse.
The HID spec includes a read report descriptor which has everything we need to be able to support HID. Windows blocks you getting it.
Instead you get a pre-parsed data packet, in a format that is not public, which you have to pass to other functions.
It really feels like we are not supposed to support generic USB devices.
The most annoying thing is looking at the device list. I have only one keyboard connected to my PC. I only have one set of hands , so I think one keyboard is appropriate. Yet the HID scanner says I have four.
Two of which show valid data, but don't work. Two of which have bollocks data. 110 buttons in 8 bytes.
I am thinking keyboards must have another layer of rubbish attached to them somehow.