Перечисление интерфейсов на составных устройствах USB

Интерфейсы на составном USB-устройстве можно группировать в коллекции или представлять одну функцию USB по отдельности. Если интерфейсы не группируются в коллекциях, универсальный родительский драйвер создает PDO для каждого интерфейса и создает набор аппаратных идентификаторов для каждого PDO.

Идентификатор устройства для PDO интерфейса имеет следующую форму:

USB\VID_v(4)&PID_p(4)&MI_z(2)

В этих идентификаторах:

  • v(4) — это четырехзначный код поставщика, который комитет по стандартам USB назначает поставщику.
  • p(4) — это четырехзначный код продукта, который поставщик назначает устройству.
  • z(2) — это номер интерфейса, извлеченный из поля bInterfaceNumber дескриптора интерфейса.

Универсальный родительский драйвер также создает следующие совместимые идентификаторы с помощью сведений из дескриптора интерфейса (USB_INTERFACE_DESCRIPTOR):

USB\CLASS_d(2)&SUBCLASS_s(2)&PROT_p(2)

USB\CLASS_d(2)&SUBCLASS_s(2)

USB\CLASS_d(2)

В этих идентификаторах:

  • d(2) — это код класса (bInterfaceClass)
  • s(2) — это код подкласса (bInterfaceSubClass)
  • p(2) — это код протокола (bInterfaceProtocol)

Каждый из этих кодов представляет собой четырехзначное число.

Перечисление коллекций интерфейсов на составных устройствах USB
Универсальный родительский драйвер USB (Usbccgp.sys)
Usb-драйверы, предоставляемые корпорацией Майкрософт