[USB] ID хаба и номер порта
От: jonnybbs  
Дата: 08.12.09 10:51
Оценка:
Здравствуйте,

Собрали USB девайс. Работаю с ним через драйвера производителя USB контроллера (cypress).

Встала задача определить ID (номер или другую информацию, к которой можно сделать привязку) хаба, к которому подключен наш USB-девайс, а также номер порта. В API драйвера производителя таких функций нет. Единственное, что я могу узнать, это device handle (скорее всего тот, который возвращает CreateFile) и несколько структур USB_DEVICE_DESCRIPTOR, USB_CONFIGURATION_DESCRIPTOR, USB_INTERFACE_DESCRIPTOR.

Насколько я понял, номер порта можно узнать из symbolic name моего устройства. Но я не знаю как его получить, имея на руках только device handle. Скорее всего надо на этот хендл натравить DeviceIoControl с какими-то IOCTL_XXX, но какими никак не могу разобраться.

Построение дерева USB (перечисление всех устройств как в утилите usbview) думаю не подойдет, по причине того, что одновременно к компьютеру будет подключен десяток наших USB девайсов, т.е. сравнение по VID и PID не прокатит. А сравнивать по device handle (одно открыто в драйвере, другое мной в user mode) наверное нет смысла, т.к. скорее всего они будут разные.

Подскажите направление, какую информацию можно извлечь о устройстве имея на руках только этот device handle ?
usb устройство хаб порт
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.