Say I have a USB device with a vendor id (VID) of 0123
and a product id (PID) of abcd
.
0123:abcd
According to USB.org, product id assignment is entirely up to a manufacturer.
Product IDs (PIDs) are assigned by each vendor as they see fit
So there's nothing stopping a misguided vendor from selling a wide range of USB devices, all needing different drivers, and all using the same vendor and products ids.
USB Device A (needs driver X) -> 0123:abcd
USB Device B (needs driver Y) -> 0123:abcd
USB Device C (needs driver Z) -> 0123:abcd
USB.org acknowledges that this potential vendor behavior can be problematic.
Duplicate numbers may cause driver error
In a case where the ids are reused for cards needing different drivers, is there anything the OS can do to determine the appropriate driver?
Are there any other fields presented by the USB device that can be used (or are typically used) to infer the appropriate driver? I'm assuming only vendor id and product id are used to make that determination.
Or will a typical *nix system assume that there's a one <-> one relationship between 0123:abcd
and the driver that should be used, and so all it can do is choose the 1 driver it thinks is appropriate?
I'm guessing, if only vendor id and product id are typically used, that only manual user intervention in loading the proper driver will work, and that there's not much else to do aside from being upset at the vendor for making things confusing.