Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se describe el proceso de enumeración en el bus serie universal.
Cuando un dispositivo está conectado a un equipo basado en Windows, la pila USB de Windows enumera el dispositivo, extrae los detalles del dispositivo, incluido el descriptor de interfaz (o descriptores) del dispositivo y, a continuación, genera un conjunto de identificadores de hardware e identificadores compatibles para el dispositivo.
Para obtener una lista completa de identificadores de hardware USB, consulte la sección "Cadenas de identificación de dispositivos" en Instalación de dispositivos.
Los ejemplos de las secciones siguientes muestran dos escenarios:
- Identificadores USB para un único dispositivo USB de interfaz
- Identificadores USB para un dispositivo USB de interfaz múltiple (compuesto)
Ejemplo 1: Dispositivo USB HID de interfaz única
En este ejemplo se muestra cómo se generan los identificadores de hardware y los identificadores compatibles para un dispositivo USB de interfaz única en un sistema que ejecuta Windows 2000 o Windows XP.
Cuando la pila USB enumera originalmente el dispositivo, el controlador USBHUB extrae idVendor, idProduct y bcdDevice desde el descriptor del dispositivo. Estos tres campos se incorporan para generar un identificador de hardware USB. Tenga en cuenta que los números de proveedor, dispositivo y revisión siempre se almacenan en formato hexadecimal.
La generación del identificador compatible para el dispositivo es más complicada. El código de clase, el código de subclase y el código de protocolo están determinados por bInterfaceClass, bInterfaceSubClass y bInterfaceProtocol del descriptor de interfaz. Estos valores están en formato hexadecimal de dos dígitos.
Nota Si proporciona un INF, los identificadores de hardware deben coincidir con los identificadores en negrita de la columna izquierda de la tabla siguiente. (Debe evitar el uso de los identificadores compatibles enumerados en la columna derecha).
Identificadores de hardware: identificadores compatibles
USB\Vid_xxxx&Pid_yyyy&Rev_zzzz: USB\Class_aa&SubClass_bb&Prot_cc
USB\Vid_xxxx&Pid_yyyy: USB\Class_aa&SubClass_bb
: USB\Class_aa
Ejemplo 2: Varios dispositivos USB HID de interfaz/función (dispositivo compuesto)
Los dispositivos USB con varias funciones se denominan dispositivos compuestos. En este ejemplo se muestra cómo se generan los identificadores de hardware y los identificadores compatibles para dispositivos USB compuestos en Windows. Cuando se conecta un nuevo dispositivo compuesto USB a un sistema informático que ejecuta Windows, el controlador USBHUB crea un objeto de dispositivo físico (PDO) y notifica al sistema operativo que ha cambiado su conjunto de dispositivos secundarios. Después de consultar el controlador del concentrador para los identificadores de hardware asociados con el nuevo PDO, el sistema busca en los archivos INF adecuados para buscar una coincidencia para los identificadores. Si un proveedor decide cargar solo un controlador para todo el dispositivo (es decir, no usar el controlador de dispositivo compuesto) y multiplexar todas las interfaces del software con ese controlador, el proveedor debe especificar una coincidencia de identificador de hardware para evitar que el sistema operativo recoja la coincidencia de clasificación inferior (USB\COMPOSITE).
Nota Si proporciona un INF, los identificadores de hardware deben coincidir con los identificadores en negrita de la columna izquierda de la tabla siguiente. (Debe evitar el uso de los identificadores compatibles enumerados en la columna derecha).
Identificadores de hardware: identificadores compatibles
USB\Vid_xxxx&Pid_yyyy&Rev_zzzz: USB\Class_aa&SubClass_bb&Prot_cc
USB\Vid_xxxx&Pid_yyyy: USB\Class_aa&SubClass_bb
: USB\Class_aa
: USB\COMPOSITE
Sin embargo, si no se encuentra ninguna coincidencia de hardware, Windows Plug and Play usa el identificador USB\COMPOSITE para cargar el controlador primario genérico USB (USBCCGP). A continuación, el controlador primario genérico crea un conjunto independiente de PPO (uno para cada interfaz) con un conjunto independiente de identificadores de hardware para cada interfaz del dispositivo compuesto. En la sección siguiente se muestra el formato de los identificadores de hardware para los PPO secundarios.
Para compilar el conjunto de identificadores de hardware para el PDO de cada interfaz, el controlador USBCCGP anexa el número de interfaz (que es un valor hexadecimal basado en cero) al final del identificador de hardware.
El código de clase, el código de subclase y el código de protocolo están determinados por los campos bInterfaceClass, bInterfaceSubClass y bInterfaceProtocol del descriptor de interfaz, respectivamente. Estos valores están en formato hexadecimal de dos dígitos.
Nota Si proporciona un INF, para cargar el controlador o para proporcionar un nombre de dispositivo descriptivo, los identificadores de hardware deben coincidir con los identificadores de negrita de la columna izquierda de la tabla siguiente. (Debe evitar el uso de los identificadores compatibles enumerados en la columna derecha).
Identificadores de hardware: identificadores compatibles
USB\Vid_xxxx&Pid_yyyy&Rev_zzzz&MI_ww: USB\Class_aa&SubClass_bb&Prot_cc
USB\Vid_xxxx&Pid_yyyy&MI_ww: USB\Class_aa&SubClass_bb
: USB\Class_aa