Вроде бы разобрался.
Помогла утилита UsbTreeView.
Она показала, что проблемные устройства декларируют USB2.0 но на самом деле являются USB1.1. Китай он очень китайский.
USB3 похоже умеет определять протокол устройства не только по дескрипторам. Поэтому утилита выдает такую диагностику:
bcdUSB : 0x200 (USB Version 2.00) -> wrong, device is Full-Speed only
А USB 2 видимо такого не умеет и полностью полагается на дескриптор.
А хаб в середине помогает потому, что он оказывается честный USB1.1, поэтому он понимает воткнутый в него девайс который тоже USB1.1, а хосту (порту комптютера) честно выдает свой правильный дескриптор и все счастливы.
|