Identificadores USB estándar

El conjunto de identificadores generados para dispositivos USB depende de si el dispositivo es un dispositivo de interfaz única o un dispositivo de varias interfaces.

Dispositivos USB de interfaz única

Cuando se conecta un nuevo dispositivo USB, el controlador del concentrador USB proporcionado por el sistema compone el siguiente identificador de dispositivo mediante la información extraída del descriptor de dispositivo:

USB\VID_v(4)&PID_d(4)&REV_r(4)

Dónde:

  • v(4) es el código de proveedor que el comité USB asigna al proveedor.
  • d(4) es el código de producto que el proveedor asigna al dispositivo.
  • r(4) es el código de revisión.

El controlador del concentrador extrae los códigos de proveedor y producto de los campos idVendor, idProduct y bcdDevice del descriptor de dispositivo, respectivamente. Estos códigos son números hexadecimales de cuatro dígitos.

Una sección del modelo INF también puede especificar el siguiente identificador de hardware:

USB\VID_v(4)&PID_d(4)

Y los siguientes identificadores compatibles:

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

USB\CLASS_c(2)&SUBCLASS_s(2)

USB\CLASS_c(2)

Dónde:

  • c(2) es el código de clase de dispositivo tomado del descriptor de dispositivo.
  • s(2) es el código de la subclase del dispositivo.
  • p(2) es el código de protocolo.

Los campos bDeviceClass, bDeviceSubClass y bDeviceProtocol del descriptor de dispositivo determinan el código de clase de dispositivo, el código de subclase y el código de protocolo, respectivamente. Estos códigos son números hexadecimales de dos dígitos.

Dispositivos USB de varias interfaces

Los dispositivos con varias interfaces se denominan dispositivos compuestos . Cuando se conecta un nuevo dispositivo compuesto USB a un equipo Windows, el controlador del concentrador USB crea un objeto de dispositivo físico (PDO) y notifica al sistema operativo que actualice la lista de dispositivos secundarios. Una vez que Windows ha consultado al controlador del concentrador los identificadores de hardware asociados al nuevo PDO, busca en los archivos INF correspondientes para encontrar una coincidencia con dichos identificadores. Si encuentra una coincidencia distinta de USB\COMPOSITE, carga el controlador indicado en el archivo INF. Sin embargo, si no se encuentra ninguna otra coincidencia, el sistema operativo usa el ID compatible USB\COMPOSITE, para el que carga el controlador primario genérico de USB. A continuación, el controlador principal genérico crea un PDO independiente y genera un conjunto independiente de identificadores de hardware para cada interfaz del dispositivo compuesto.

Cada interfaz tiene un identificador de dispositivo de la forma siguiente:

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

Dónde:

Una sección del modelo INF también puede especificar los siguientes identificadores compatibles:

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

USB\CLASS_d(2)&SUBCLASS_s(2)

USB\CLASS_d(2)

USB\COMPOSITE

Dónde:

  • d(2) es el código de clase de dispositivo tomado del descriptor de dispositivo.
  • s(2) es el código de subclase.
  • p(2) es el código de protocolo.

Los campos bInterfaceClass, bInterfaceSubClass y bInterfaceProtocol del descriptor de interfaz determinan el código de clase de dispositivo, el código de subclase y el código de protocolo, respectivamente. Estos códigos son números hexadecimales de dos dígitos.