В .inf прописаны две строки для разных ревизий USB устройства: USB\VID_22B8&PID_1409&REV_0001 USB\VID_22B8&PID_1409&REV_0003 При получении SymbolicName с помощью SetupDiGetDeviceInterfaceDetail ревизия в названии отсутствует: \\?\USB#VID_22B8&PID_1409#5&38BCB265&0&4#{A5DCBF10-6530-11D2-901F-00C04FB951ED} Как узнать ревизию не лазая по Registry и не обращаясь к самому устройству?
Через Setup API достать список Hardware ID. Первая строка будет с ревизией, вторая без. USB\Vid_xxxx&Pid_yyyy&Rev_zzzz USB\Vid_xxxx&Pid_yyyy Hardware ID лежут тут HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\Vid_xxxx&Pid_yyyy\<хрень>\HardwareID поэтому косвенно, к реестру обращение будет. Иначе никак.