Información general sobre la enumeración de colecciones de interfaz en dispositivos compuestos USB

Las interfaces de un dispositivo USB compuesto se pueden agrupar en colecciones. El controlador primario genérico USB (Usbccgp.sys) puede enumerar colecciones de interfaz de cuatro maneras.

Estos cuatro métodos de enumeración de colecciones de interfaz se organizan jerárquicamente de la siguiente manera:

  1. Rutinas de devolución de llamada proporcionadas por el proveedor

    Si el proveedor ha registrado una rutina de devolución de llamada con el controlador primario genérico USB (Usbccgp.sys), el controlador primario genérico da prioridad a la rutina de devolución de llamada y permite que la rutina de devolución de llamada agrupe interfaces en lugar de usar algún otro método. Para obtener más información sobre la enumeración de la recopilación de interfaces mediante rutinas de devolución de llamada proporcionadas por el proveedor, vea Enumeración de colecciones de interfaz en dispositivos compuestos USB.

  2. Descriptores funcionales de unión

    . Si el proveedor ha habilitado la enumeración CDC y WMCDC en el controlador primario genérico USB, el controlador primario genérico usa descriptores funcionales de unión (UFD) para agrupar interfaces en colecciones. Cuando se habilita, este método tiene prioridad sobre todos los demás métodos, excepto las rutinas de devolución de llamada proporcionadas por el proveedor.

  3. Descriptores de asociación de interfaz

    Si hay descriptores de asociación de interfaz (IAD), el controlador primario genérico USB siempre agrupa interfaces mediante IAD en lugar de usar métodos heredados. Microsoft recomienda que los proveedores usen IAD para definir colecciones de interfaz.

  4. Método de audio heredado

    El controlador primario genérico USB puede enumerar colecciones de interfaz mediante técnicas heredadas reservadas para funciones de audio. El controlador primario genérico no usa este método si hay algún IAD en el dispositivo.

Personalización de la enumeración de colecciones de interfaz para dispositivos compuestos

Algunos dispositivos USB tienen colecciones de interfaces que el Descriptor de asociación de interfaz USB (IAD) no puede describir. En Windows Vista y sistemas operativos posteriores, los proveedores pueden personalizar la forma en que el controlador primario genérico USB (Usbccgp.sys) define y enumera las colecciones de interfaz de un dispositivo. Esto se realiza mediante una rutina de devolución de llamada de enumeración en un controlador de filtro. La rutina de devolución de llamada ayuda al controlador primario genérico a definir colecciones de interfaz personalizadas para el dispositivo.

Para que el controlador primario genérico defina colecciones de interfaz personalizadas, el proveedor del dispositivo compuesto debe:

  1. Implemente la rutina de devolución de llamada de enumeración (USBC_START_DEVICE_CALLBACK).
  2. Proporcione un puntero a la rutina de devolución de llamada en la interfaz de configuración del dispositivo USB (miembro StartDeviceCallback de USBC_DEVICE_CONFIGURATION_INTERFACE_V1).
  3. Proporcione un archivo INF que coincida con el identificador de dispositivo compuesto y cargue explícitamente el controlador primario genérico USB y el controlador de filtro.

Consideraciones de implementación

El controlador de filtro que contiene la rutina de devolución de llamada de enumeración puede ser un controlador de filtro superior o inferior. Cuando el controlador primario genérico USB recibe una solicitud de IRP_MN_START_DEVICE para iniciar un dispositivo compuesto, consulta la interfaz de configuración del dispositivo USB mediante el envío de una solicitud de IRP_MN_QUERY_INTERFACE a la parte superior de la pila de controladores.

Al recibir una solicitud de IRP_MN_QUERY_INTERFACE , el controlador de filtro debe comprobar el tipo GUID en el miembro InterfaceType de la solicitud para comprobar que la interfaz solicitada es de tipo USB_BUS_INTERFACE_USBC_CONFIGURATION_GUID. Si es así, el controlador de filtro devuelve un puntero a la interfaz en el miembro Interface del IRP.

La rutina de devolución de llamada de enumeración debe devolver un puntero a una matriz de descriptores de función (USBC_FUNCTION_DESCRIPTOR) que describen las colecciones de interfaz. Cada descriptor de función contiene una matriz de descriptores de interfaz (USB_INTERFACE_DESCRIPTOR) que describen la colección de interfaces. La rutina de devolución de llamada debe asignar los descriptores de función y los descriptores de interfaz del grupo no paginado. El controlador primario genérico libera esta memoria. La rutina de devolución de llamada debe asegurarse de que el miembro NumberOfInterfaces de cada USB_INTERFACE_DESCRIPTOR notifique con precisión el número de interfaces de la colección de interfaces.

El controlador primario genérico crea un objeto de dispositivo físico (PDO) para cada descriptor de función.

La interfaz de configuración del dispositivo USB y la rutina de devolución de llamada de enumeración se resumen en Rutinas genéricas del controlador primario.

Mecanismo de carga de controladores primarios genéricos USB

Cuando un dispositivo compuesto cumple los requisitos descritos en Enumeración de dispositivos compuestos USB, el sistema operativo genera un identificador compatible de USB\COMPOSITE para indicar que el dispositivo está compuesto. El identificador compatible genera una coincidencia en Usb.inf y el sistema operativo carga automáticamente el controlador primario genérico USB, sin la ayuda de un archivo INF proporcionado por el proveedor.

Sin embargo, este mecanismo predeterminado no funciona para dispositivos compuestos que requieren enumeración personalizada de colecciones de interfaz, ya que en el mecanismo predeterminado, el sistema no carga el controlador de filtro proporcionado por el proveedor necesario. Para que el mecanismo de rutina de devolución de llamada de enumeración funcione, el controlador de filtro que expone la interfaz de configuración del dispositivo USB ya debe cargarse cuando el elemento primario genérico USB enumera las colecciones de interfaz del dispositivo compuesto. Esto requiere que el proveedor del dispositivo compuesto instale un archivo INF que coincida con el identificador del dispositivo compuesto y cargue explícitamente el controlador primario genérico USB y el controlador de filtro.

Compatibilidad con la clase de dispositivo de comunicación móvil inalámbrica

En Windows Vista, el controlador primario genérico USB (Usbccgp.sys) proporciona compatibilidad con dispositivos que se incluyen en la clase de dispositivo de comunicación (USB) del bus serie universal (CDC) y la clase de dispositivo de comunicación móvil inalámbrica USB (WMCDC).

La especificación USB Wireless Mobile Communication Device Class (WMCDC) establece un estándar para la conexión, el control y el intercambio de contenido entre un host y un dispositivo móvil inalámbrico (por ejemplo, un teléfono móvil) cuando el dispositivo está conectado a un puerto USB. WMCDC es una extensión de la clase de dispositivo de comunicación (CDC), que incluye una amplia gama de dispositivos de comunicación y redes. En esta sección se describe la arquitectura que admite dispositivos CDC y WMCDC en sistemas operativos Windows.

Los dispositivos WMCDC constan de varias funciones que se agrupan en auriculares lógicos. La mayoría de los dispositivos WMCDC tienen un solo teléfono lógico, pero un dispositivo podría tener varios teléfonos lógicos. Los auriculares lógicos suelen incluir funciones como un módem de datos o fax, un almacén de objetos y una instalación de control de llamadas. Un auricular lógico también puede incluir funciones auxiliares definidas por otras especificaciones USB, como la especificación de clase USB Audio, la especificación de clase del dispositivo de entrada humana (HID) USB y la especificación de clase USB Video Class.

La arquitectura wmCDC de Windows usa controladores nativos de Windows para administrar las funciones del dispositivo WMCDC. Por ejemplo, puede usar el subsistema de interfaz de programa de aplicaciones de telefonía (TAPI) de Windows para administrar las funciones de módem de voz y fax del dispositivo y el subsistema de la interfaz de controlador de red (NDIS) de Windows para administrar la función Ethernet LAN del dispositivo. Además, puede administrar algunas funciones, como una función del Protocolo de intercambio de objetos (OBEX), en software en modo de usuario con la ayuda de WinUSB (Winusb.sys).

Esta imagen muestra una pila de controladores de ejemplo para un dispositivo WMCDC.

Diagrama de una configuración de dispositivo de ejemplo y una pila de controladores.

En la ilustración anterior, el dispositivo WMCDC contiene un solo teléfono lógico: una función OBEX y una función de módem. Un archivo INF proporcionado por el proveedor carga controladores nativos de Windows para administrar el módem. La función OBEX se administra mediante un controlador de modo de usuario proporcionado por el proveedor que se ejecuta en el marco de controlador en modo de usuario (UMDF). El controlador en modo de usuario usa el protocolo Dispositivos portátiles de Windows (WPD) para comunicarse con las aplicaciones de usuario y la interfaz que WinUSB exporta para comunicarse con la pila USB. En general, un archivo INF proporcionado por el proveedor cargará una instancia independiente de Winusb.sys para cada colección de interfaz que use Winusb.sys.

Configuración del Registro

La pila USB no admite automáticamente WMCDC. Debe proporcionar un archivo INF que cargue una instancia de Usbccgp.sys. El archivo INF debe contener una sección AddReg que establezca el valor del Registro EnumeratorClass en la clave de software asociada a Usbccgp.sys a un valor de REG_BINARY construido a partir de tres números: 0x02, 0x00 y 0x 00. En el ejemplo de código siguiente de un archivo INF de ejemplo se muestra cómo establecer EnumeratorClass en el valor adecuado.

[CCGPDriverInstall.NT]
Include=usb.inf
Needs=Composite.Dev.NT
AddReg=CCGPDriverInstall.AddReg

[CCGPDriverInstall.NT.Services]
Include=usb.inf
Needs=Composite.Dev.NT.Services

[CCGPDriverInstall.AddReg]
HKR,,EnumeratorClass, 0x00000001,02,00,00

El valor que debe asignar a EnumeratorClass se construye a partir de tres valores binarios de 1 byte que se representan en el archivo INF por pares de dígitos hexadecimales: 02, 00 y 00. Estos tres números corresponden a los valores que el foro de implementadores USB ha asignado a la clase de dispositivo CDC, la subclase de dispositivo CDC y el protocolo de dispositivo CDC, respectivamente.

En los temas siguientes se describe aún más wmCDC:

Enumeración de colecciones de interfaz en WMCDC

La clase de dispositivo de comunicación móvil inalámbrica USB (WMCDC) es una subclase de la clase de dispositivo de comunicaciones USB (CDC). La especificación WMCDC amplía, pero no cambia sustancialmente las directrices CDC para definir colecciones de interfaz. En concreto, los dispositivos WMCDC deben cumplir las directrices CDC para definir colecciones de interfaz.

Las colecciones de interfaz CDC contienen una interfaz maestra (USB_INTERFACE_DESCRIPTOR) que pertenece a la clase de interfaz de comunicación (bInterfaceClass = 0x02) o a la clase de interfaz de datos (bInterfaceClass = 0x0A). Si la interfaz maestra pertenece a la clase de interfaz de comunicación (que es la situación típica), la subclase de la interfaz maestra (bInterfaceSubClass) especifica un modelo de control CDC. El modelo de control indica el tipo de interfaces incluidas en la colección de interfaces. Para obtener una descripción de los modelos de control que define el foro de implementadores USB, consulte la especificación CDC y la especificación WMCDC.

La interfaz maestra de una colección de interfaz va seguida de un conjunto de descriptores funcionales obligatorios específicos de clase, incluido un descriptor funcional de unión (UFD). El UFD enumera los números de las interfaces que pertenecen a la colección. El campo bMasterInterface del UFD contiene el número de la interfaz maestra. Cero o más campos bSubordinateInterface contienen los números de las demás interfaces (subordinadas) de la colección.

Para la mayoría de los tipos de modelos de control, el controlador primario genérico USB (Usbccgp.sys) crea un objeto de dispositivo físico (PDO) para cada UFD. Sin embargo, algunos modelos de control incluyen una interfaz de audio a la que el controlador primario genérico enumera de forma independiente de la colección de interfaces a la que pertenece la interfaz de audio. La interfaz de audio aparece en la lista de interfaces subordinadas (bSubordinateInterface) en la UFD de la colección de interfaz, pero el controlador primario genérico crea un PDO independiente para la interfaz de audio. Tanto el PDO para la interfaz de audio como el PDO de la colección de interfaz a la que pertenece la interfaz de audio están directamente por encima del objeto de dispositivo funcional (FDO) del dispositivo compuesto primario en el árbol de objetos del dispositivo. El PDO de la interfaz de audio no es un elemento secundario de la colección de interfaz.

Hay dos modelos de control cuyas características de enumeración se pueden configurar en el registro: el modelo de control de teléfono inalámbrico (WHCM), que define un auricular lógico y el modelo de control del Protocolo de intercambio de objetos (OBEX). Para configurar las características de enumeración de estos dos modelos de control, debe proporcionar un archivo INF que cargue una instancia de Usbccgp.sys y establezca el valor de CdcFlags en la clave de software para esa instancia de Usbccgp.sys. En la tabla siguiente se describen las opciones de configuración de CdcFlags.

Bit CdcFlags Bit establecido en 0 Bit establecido en 1
0 (máscara = 0x00000001) El controlador primario genérico USB crea un PDO independiente para cada interfaz OBEX. El controlador primario genérico USB crea un único PDO para todas las interfaces OBEX.
1 (mask = 0x00000010) El controlador primario genérico USB no crea PPO para interfaces WHCM (teléfonos lógicos). Estas interfaces permanecen ocultas desde la perspectiva del árbol de objetos del dispositivo. El controlador primario genérico USB crea un PDO para cada interfaz WHCM.

Por ejemplo, para borrar ambos bits (establézcalos en 0), el archivo INF debe tener la siguiente línea en una sección DDInstall.AddReg .

HKR, , CdcFlags, 0x00010001, 0x00000000

Para establecer ambos bits en 1, el archivo INF debe tener la siguiente línea.

HKR, , CdcFlags, 0x00010001, 0x00000011

Para establecer el bit 0 en 1 y 1 en 0, el archivo INF debe tener la siguiente línea.

HKR, , CdcFlags, 0x00010001, 0x00000001

Cualquier bit se puede establecer o restablecer, independientemente del otro bit.

En las ilustraciones siguientes se muestra cómo diferentes configuraciones del Registro pueden crear árboles de dispositivo diferentes para el mismo dispositivo.

En la ilustración siguiente se muestra la configuración de PDO cuando el bit 0 y el bit 1 de CdcFlags son 0.

Diagrama que ilustra una colección de interfaz a la asignación de objetos de dispositivo para CdcFlags = 0x00000000.

La colección de interfaz del modelo de control de teléfono inalámbrico (WHCM) de la ilustración anterior contiene tres colecciones de interfaz subordinadas (bSubordinateInterface): dos colecciones OBEX y una colección de módems. El bit 0 de CdcFlags es 0, por lo que el controlador primario genérico USB no crea un PDO para la colección de interfaz WHCM. El bit 1 de CdcFlags es 0, por lo que el controlador primario genérico USB genera un PDO independiente para cada colección de interfaz OBEX.

En la ilustración siguiente se muestra la configuración de PDO cuando se establecen tanto el bit 0 como el bit 1 de CdcFlags .

Diagrama que ilustra una colección de interfaz a la asignación de objetos de dispositivo para CdcFlags = 0x00010001.

Dado que el bit 0 de CdcFlags está establecido en 1, el controlador primario genérico USB crea un PDO para la colección de interfaz WHCM. Dado que el bit 1 de CdcFlags está establecido en 1, el controlador primario genérico USB agrupa las dos colecciones OBEX y genera un único PDO para ambas colecciones OBEX.

Es posible que quiera representar colecciones OBEX con un único PDO en el nivel de kernel y distinguir entre cada colección OBEX individual dentro de un controlador en modo de usuario. El protocolo Dispositivos portátiles de Windows (WPD) puede ayudarle a multiplexar flujos de datos entre diferentes funciones OBEX en el nivel de usuario, cuando todas las funciones OBEX se agrupan en un único PDO en el nivel de kernel.

En el siguiente archivo INF de ejemplo se carga el controlador primario usb genérico para administrar un dispositivo WMCDC y se indica al elemento primario genérico USB que cree PDO para teléfonos lógicos y crear un único PDO para todas las colecciones OBEX en el terminal lógico.

[Version]
Signature="$Windows NT$"
Class=USB
ClassGUID={36FC9E60-C465-11CF-8056-444553540000}
Provider=%MSFT%
DriverVer=07/01/2001,5.1.2600.0
CatalogFile=ExampleCatalog.cat
PnpLockdown=1

[ControlFlags]
ExcludeFromSelect=*

[Manufacturer]
CompanyName=CompanyName,NTamd64

[CompanyName.NTamd64]
%COMPANYNAME.DeviceDesc%=CCGPDriverInstall,USB\Vid_????&Pid_????

[CCGPDriverInstall.NT]
Include=usb.inf
Needs=Composite.Dev.NT
AddReg=CCGPDriverInstall.AddReg

[CCGPDriverInstall.NT.Services]
Include=usb.inf
Needs=Composite.Dev.NT.Services

[CCGPDriverInstall.AddReg]
HKR,,EnumeratorClass,0x00000001,02,00,00
HKR,,CdcFlags,0x00010001,0x00010001

[Strings]
MSFT="Microsoft"
COMPANYNAME.DeviceDesc="USB Phone Parent"

Control de colecciones de interfaces CDC y WMCDC

El controlador primario genérico USB controla las interfaces del modelo de control de teléfono inalámbrico (WHCM) de una manera especial.

En la lista siguiente se resumen las formas más importantes en las que el control de colecciones de interfaces CDC y WMCDC difiere del de otras colecciones de interfaz:

  • La clase de dispositivo de comunicación móvil inalámbrica permite una cantidad limitada de anidamiento de colecciones de interfaz. En concreto, una colección de interfaz de teléfono lógico (es decir, una colección de interfaz WHCM) puede contener otras colecciones de interfaz subordinadas. Por ejemplo, un teléfono compatible con WMCDC puede tener una colección de interfaz WHCM, que, a su vez, contiene una colección de modelos de control abstracto y una colección OBEX.
  • Puede configurar el controlador primario genérico USB para que no enumere las colecciones de interfaz WHCM. Las colecciones de interfaz WHCM que no están enumeradas permanecen ocultas, pero el controlador primario genérico usa información de los descriptores de función de unión (UFD) que pertenecen a una colección de interfaz WHCM para agrupar y enumerar colecciones de interfaz subordinadas.
  • Puede configurar el controlador primario genérico USB para crear objetos de dispositivo físico independientes (PPO) para colecciones de interfaz de modelo de control OBEX o para crear un único PDO para todas las colecciones de interfaz de modelo de control OBEX.
  • La lista de números de interfaz de un UFD puede tener huecos. Es decir, los números de interfaz de un UFD pueden hacer referencia a interfaces que no son contiguos. Este tipo de numeración no es válido, por ejemplo, para el Descriptor de asociación de interfaz USB (IAD), cuyas interfaces deben ser contiguas y tener números secuenciales.
  • Los UFD pueden incluir colecciones de interfaz de audio relacionadas
  • Los identificadores de hardware (identificadores) para las colecciones de interfaz CDC y WMCDC deben incluir la subclase de interfaz. Otras interfaces USB, cuyos identificadores de hardware contienen un sufijo MI_%02X que especifica el número de interfaz, no contienen información sobre la subclase de interfaz. La información de la subclase se incluye en el identificador de hardware para permitir que los proveedores proporcionen archivos INF con coincidencias de identificador de hardware para colecciones de interfaz específicas, en lugar de depender de la posición de la interfaz en el diseño del descriptor para determinar qué controlador se va a cargar para la colección. La información de subclases del identificador de hardware también permite una ruta de migración gradual de los controladores proporcionados por el proveedor actuales que administran colecciones de interfaz WMCDC a alternativas, como los controladores en modo de usuario. Para obtener una explicación general sobre cómo se da formato a los identificadores de hardware de interfaz USB, consulte Identificadores para dispositivos USB.

Modelos de control CDC y WMCDC

En la sección Modelos de control CDC y WMCDC se describen las propiedades de las colecciones de interfaz que se admiten en los sistemas operativos Microsoft Windows. Cada descripción incluye, entre otras cosas, una lista de identificadores de hardware y dispositivo (ID) que genera el controlador primario genérico USB para la colección de interfaces.

La mayoría de las colecciones de interfaz que Windows admite corresponden a modelos de control que pertenecen a la clase de dispositivo de comunicación (CDC) y a la clase de dispositivo de comunicación móvil inalámbrica (WMCDC), pero el sistema operativo también admite colecciones heredadas de interfaz de audio y vídeo y una colección de interfaces que define el Consorcio de promoción de informática móvil (MCPC).

Las colecciones de interfaz que se describen en esta sección son las siguientes:

Interfaces de clase de audio

Las colecciones de interfaz de clase de dispositivo de audio USB que se producen en dispositivos CDC y WMCDC tienen las siguientes propiedades.

Propiedad Descripción
Referencia Definición de clase de dispositivo de bus serie universal para dispositivos de audio, versión 1.0.
Clase Todas las interfaces de la colección de interfaz deben pertenecer a la Clase de dispositivo de audio (0x01).
Subclase Cada interfaz de la colección de interfaz debe tener una subclase diferente de la primera interfaz de la colección.
Protocolo Ninguno (0x00).
Enumerated Sí.
Interfaces relacionadas Cero o más interfaces contiguas que pertenecen a la subclase de streaming (0x02).
Identificadores de hardware USB\Vid_%04x&Pid_%04x&Rev_%04x&MI_%02x
USB\Vid_%04x&Pid_%04x&MI_%02x

Los identificadores de hardware de las colecciones de interfaz de audio no contienen información específica de la clase de interfaz.
Identificadores compatibles USB\Class_01&SubClass_01&Prot_00
USB\Class_01&SubClass_01
USB\Class_01

El formato de los identificadores compatibles para las colecciones de interfaz de audio contiene información insertada sobre la clase de interfaz, la subclase de interfaz y el protocolo. En el caso de las colecciones de interfaz de audio en un dispositivo CDC o WMCDC, la clase de interfaz es 01, la subclase es 01 y el protocolo es 00.

Modelo de control abstracto CDC

Hay dos versiones del modelo de control abstracto (ACM). La versión original se define en la especificación de clase de dispositivo de comunicación USB (CDC). La especificación USB Wireless Mobile Communication Device Class (WMCDC) contiene una definición extendida de ACM.

Las colecciones de interfaz que cumplen con la especificación WMCDC se describen en esta página.

Las colecciones de interfaz que cumplen con la especificación CDC tienen las siguientes propiedades.

Propiedad Descripción
Referencia Definiciones de clase de bus serie universal para dispositivos de comunicación, versión 1.1, sección 3.6.2.
Clase de la interfaz maestra Clase de interfaz de comunicación (0x02).
Subclase de la interfaz maestra ACM (0x02).
Protocolo Cualquiera.
Enumerated Sí.
Interfaces relacionadas Una interfaz de clase de datos y interfaces de clase de audio opcionales a las que hace referencia el descriptor funcional de unión (UFD).
Identificadores de hardware USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_02&MI_%02x
USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_02
USB\Vid_%04x&Pid_%04x&Cdc_02&MI_%02x
USB\Vid_%04x&Pid_%04x&Cdc_02
Identificadores compatibles USB\Class_02&SubClass_02&Prot_%02X
USB\Class_02&SubClass_02
USB\Class_02
Control especial El UFD puede hacer referencia a una colección de interfaz de audio que se enumera independientemente de la colección de interfaz ACM.

Modelo de control de redes ATM CDC

Las colecciones de interfaz del modelo de control de redes ATM (ANCM) CDC USB tienen las siguientes propiedades.

Propiedad Descripción
Referencia Definiciones de clase de bus serie universal para dispositivos de comunicación, versión 1.1, sección 3.8.3
Clase de la interfaz maestra Clase de interfaz de comunicación (0x02)
Subclase de la interfaz maestra ANCM (0x07)
Protocolo Ninguno (0x00)
Enumerated
Interfaces relacionadas Una interfaz de clase de datos a la que hace referencia el Descriptor funcional de unión (UFD)
Identificadores de hardware USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_07&MI_%02x
USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_07
USB\Vid_%04x&Pid_%04x&Cdc_07&MI_%02x
USB\Vid_%04x&Pid_%04x&Cdc_07
Identificadores compatibles USB\Class_02&SubClass_07&Prot_00
USB\Class_02&SubClass_07
USB\Class_02
Control especial None

Modelo de control CAPI CDC

Las colecciones de interfaz del modelo de control de ISDN común (CAPI) de LA API COMÚN (CAPI) de USB CDC tienen las siguientes propiedades.

Propiedad Descripción
Referencia Definiciones de clase de bus serie universal para dispositivos de comunicación, versión 1.1, sección 3.7.2
Clase de la interfaz maestra Clase de interfaz de comunicación (0x02)
Subclase de la interfaz maestra CAPI (0x05)
Protocolo Ninguno (0x00)
Enumerated
Interfaces relacionadas Una interfaz de clase de datos a la que hace referencia el descriptor funcional de unión (UFD).
Identificadores de hardware USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_05&MI_%02x
USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_05
Identificadores compatibles USB\Class_02&SubClass_05&Prot_00
USB\Class_02&SubClass_05
Control especial None

Modelo de control de línea directa CDC

Las colecciones de interfaz del modelo de control de línea directa (DLCM) CDC USB tienen las siguientes propiedades.

Propiedad Descripción
Referencia Definiciones de clase de bus serie universal para dispositivos de comunicación, versión 1.1, sección 3.6.1.
Clase de la interfaz maestra Clase de interfaz de comunicación (0x02).
Subclase de la interfaz maestra DLCM (0x01).
Protocolo Ninguno (0x00).
Enumerated Sí.
Interfaces relacionadas Clase de audio o interfaces definidas por el proveedor a las que hace referencia el descriptor funcional de unión (UFD).
Identificadores de hardware USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_01&MI_%02x
USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_01
USB\Vid_%04x&Pid_%04x&Cdc_01&MI_%02x
USB\Vid_%04x&Pid_%04x&Cdc_01
Identificadores compatibles USB\Class_02&SubClass_01&Prot_00
USB\Class_02&SubClass_01``USB\Class_02
Control especial El UFD hace referencia a una colección de interfaz de clase de audio que se enumera independientemente de la colección de interfaz DLCM.

Modelo de control de redes Ethernet CDC

Las colecciones de interfaces del modelo de control de red Ethernet (ENCM) CDC USB tienen las siguientes propiedades.

Propiedad Descripción
Referencia Definiciones de clase de bus serie universal para dispositivos de comunicación, versión 1.1, sección 3.8.2.
Clase de la interfaz maestra Clase de interfaz de comunicación (0x02).
Subclase de la interfaz maestra ENCM (0x06).
Protocolo Ninguno (0x00).
Enumerated Sí.
Interfaces relacionadas Una interfaz de clase de datos a la que hace referencia el descriptor funcional de unión (UFD).
Identificadores de hardware USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_06&MI_%02x
USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_06
USB\Vid_%04x&Pid_%04x&Cdc_06&MI_%02x
USB\Vid_%04x&Pid_%04x&Cdc_06
Identificadores compatibles USB\Class_02&SubClass_06&Prot_00
USB\Class_02&SubClass_06
USB\Class_02
Control especial Los identificadores compatibles de este modelo de control tienen una coincidencia en un archivo INF proporcionado por Microsoft. Si el sistema operativo no encuentra una coincidencia para uno de los identificadores de hardware en un archivo INF proporcionado por el proveedor, el sistema carga automáticamente el controlador de miniporte NDIS nativo para administrar la colección de interfaces.

Modelo de control ISDN de varios canales CDC

Las colecciones de interfaz del modelo de control ISDN (MCCM) CDC DE USB tienen las siguientes propiedades.

Propiedad Descripción
Referencia Definiciones de clase de bus serie universal para dispositivos de comunicación, versión 1.1, sección 3.7.1
Clase de la interfaz maestra Clase de interfaz de comunicación (0x02)
Subclase de la interfaz maestra MCCM (0x04)
Protocolo Ninguno (0x00)
Enumerated
Interfaces relacionadas Varias interfaces de clase de datos a las que hace referencia el descriptor funcional de unión (UFD).
Identificadores de hardware USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_04&MI_%02x
USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_04
USB\Vid_%04x&Pid_%04x&Cdc_04&MI_%02x
USB\Vid_%04x&Pid_%04x&Cdc_04
Identificadores compatibles USB\Class_02&SubClass_04&Prot_00
USB\Class_02&SubClass_04
USB\Class_02
Control especial None

Modelo de control telefónico CDC

Las colecciones de interfaz del modelo de control telefónico CDC (TCM) USB tienen las siguientes propiedades.

Propiedad Descripción
Referencia Definiciones de clase de bus serie universal para dispositivos de comunicación, versión 1.1, sección 3.6.3.
Clase de la interfaz maestra Clase de interfaz de comunicación (0x02).
SubClase de la interfaz maestra TCM (0x03).
Protocolo Cualquiera.
Enumerated Sí.
Interfaces relacionadas Interfaces de clase de audio a las que hace referencia el descriptor funcional de unión (UFD).
Id. de hardware USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_03&MI_%02x
USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_03
USB\Vid_%04x&Pid_%04x&Cdc_03&MI_%02x
USB\Vid_%04x&Pid_%04x&Cdc_03
Id. compatible USB\Class_02&SubClass_03&Prot_%02X
USB\Class_02&SubClass_03
USB\Class_02
Manejo especial El UFD puede hacer referencia a una colección de interfaz de clase de audio que se enumera independientemente de la colección de interfaz TCM.

Interfaces únicas del proveedor de MCPC

El Consorcio de promoción de informática móvil (MCPC) definió un formato para las colecciones de interfaz antes de que la especificación de clase de dispositivo de comunicación móvil inalámbrica (WMCDC) proporcionara un formato para dispositivos CDC únicos del proveedor. Por lo tanto, las colecciones de interfaz MCPC no cumplen con el estándar WMCDC.

Sin embargo, el controlador primario genérico USB puede enumerar colecciones de interfaz MCPC si WMCDC está habilitado. Las colecciones de interfaz de MCPC tienen las siguientes propiedades.

Propiedad Descripción
Referencia Especificación gl-004 del Consorcio de promoción de informática móvil (MCPC)
Clase CDC (0x02)
Subclase 0x88
Protocolo Ninguno (0x00)
Enumerated
Interfaces relacionadas Cero o más interfaces de clase de datos a las que hace referencia el descriptor funcional de unión (UFD)
Identificadores de hardware USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_88&MI_%02x
USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_88
USB\Vid_%04x&Pid_%04x&Cdc_88&MI_%02x
USB\Vid_%04x&Pid_%04x&Cdc_88
Identificadores compatibles USB\Class_02&SubClass_88&Prot_00
USB\Class_02&SubClass_88
USB\Class_02
Manejo especial None

Interfaces de clase de vídeo

Las colecciones de interfaz de clase de dispositivo de vídeo USB que se producen en dispositivos CDC y WMCDC tienen las siguientes propiedades.

Propiedad Descripción
Referencia Definición de clase de dispositivo de bus serie universal para dispositivos de vídeo, versión 1.0.
Clase Vídeo (0x0E).
Subclase Control de vídeo (0x01).
Protocolo Ninguno (0x00).
Enumerated Sí.
Interfaces relacionadas Cero o más interfaces contiguas que pertenecen a la subclase de streaming (0x02).
Identificadores de hardware USB\Vid_%04x&Pid_%04x&Rev_%04x&MI_%02x
USB\Vid_%04x&Pid_%04x&MI_%02x
Identificadores compatibles USB\Class_0E&SubClass_01&Prot_00
USB\Class_0E&SubClass_01
USB\Class_0E
Manejo especial Las colecciones de interfaz de clase de vídeo reciben un control especial en dispositivos CDC. En dispositivos que no son CDC, las colecciones de interfaz de clase de vídeo se definen mediante descriptores de asociación de interfaz (IAD). En los dispositivos CDC, las colecciones de interfaz de clase de vídeo se definen mediante descriptores funcionales de unión (UFD).

Modelo de control abstracto de WMCDC

Hay dos versiones del modelo de control abstracto (ACM). La versión original se define en la especificación de clase de dispositivo de comunicación USB (CDC). La especificación USB Wireless Mobile Communication Device Class (WMCDC) contiene una definición extendida del ACM. Las colecciones de ACM que contienen una función de fax/módem deben usar la definición WMCDC de ACM en lugar de la definición de ACM CDC original.

Las colecciones de interfaz que cumplen con la especificación CDC se describen en esta página.

Las colecciones de interfaz que cumplen con la especificación WMCDC tienen las siguientes propiedades.

Propiedad Descripción
Referencia Especificación de subclase CDC del bus serie universal para dispositivos de comunicación móvil inalámbrica, versión 1.0, sección 6.2.
Clase de la interfaz maestra Clase de interfaz de comunicación (0x02).
Subclase de la interfaz maestra ACM (0x02).
Protocolo Si la colección usa un protocolo at Command Set Protocol, el valor de protocolo incrustado en los identificadores compatibles es 0x01. Si la colección usa uno de los protocolos que describe la especificación WMCDC, el valor de protocolo incrustado en los identificadores compatibles se 0x2 a través de 0x06 o 0xFE.
Enumerated Sí.
Interfaces relacionadas Una interfaz de clase de datos a la que hace referencia el descriptor funcional de unión (UFD).
Identificadores de hardware USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_Modem&MI_%02x
USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_Modem
USB\Vid_%04x&Pid_%04x&Cdc_Modem&MI_%02x
USB\Vid_%04x&Pid_%04x&Cdc_Modem
Identificadores compatibles USB\Class_02&SubClass_Modem&Prot_%02X
USB\Class_02&SubClass_Modem
USB\Class_02
Manejo especial El UFD podría hacer referencia a una colección de interfaz de audio que se enumera independientemente de la colección de interfaz ACM.

Las colecciones de interfaz deben cumplir los requisitos especiales de descriptor y punto de conexión que se especifican en la sección 6.2 de la especificación WMCDC. Si la colección de interfaz no cumple los requisitos de WMCDC, pero la interfaz cumple con los requisitos CDC, el controlador primario genérico USB enumerará la colección de interfaces y los identificadores de hardware genéricos con formatos CDC.

Los identificadores compatibles de este modelo de control tienen una coincidencia en un archivo INF proporcionado por Microsoft. Si el sistema operativo no encuentra una coincidencia para uno de los identificadores de hardware en un archivo INF suministrado por el proveedor, el sistema carga automáticamente el controlador de filtro de módem de interfaz de programación de aplicaciones de telefonía nativa (TAPI) para administrar la función del módem y establece la configuración del registro TAPI adecuada, a menos que el código de protocolo se 0xFE. Si el código de protocolo es 0xFE, el proveedor debe proporcionar un dispositivo o un co-instalador de clase para rellenar correctamente la configuración del Registro TAPI.

Modelo de administración de dispositivos WMCDC

Las colecciones de interfaz del modelo de administración de dispositivos (DMM) DE USB WMCDC tienen las siguientes propiedades.

Propiedad Descripción
Referencia Especificación de subclase CDC del bus serie universal para dispositivos de comunicación móvil inalámbrica, versión 1.0, sección 6.6.
Clase de la interfaz maestra Clase de interfaz de comunicación (0x02).
Subclase de la interfaz maestra DMM (0x09).
Protocolo Cualquiera.
Enumerated Sí.
Interfaces relacionadas Ninguno.
Identificadores de hardware USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_09&MI_%02x
USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_09
USB\Vid_%04x&Pid_%04x&Cdc_09&MI_%02x
USB\Vid_%04x&Pid_%04x&Cdc_09
Identificadores compatibles USB\Class_02&SubClass_09&Prot_%02X
USB\Class_02&SubClass_09
USB\Class_02
Manejo especial Este modelo de control no usa un descriptor funcional de unión (UFD).

Modelo de línea directa móvil de WMCDC

Las colecciones de interfaz del modelo de línea directa móvil (MDLM) de USB WMCDC tienen las siguientes propiedades:

Propiedad Descripción
Referencia Especificación de subclase CDC del bus serie universal para dispositivos de comunicación móvil inalámbrica, versión 1.0, sección 6.7
Clase de la interfaz maestra Clase de interfaz de comunicación (0x02)
Subclase de la interfaz maestra MDLM (0x0A)
Protocolo Any
Enumerated
Interfaces relacionadas Una o varias interfaces de clase de datos a las que hace referencia el descriptor funcional de unión (UFD)
Identificadores de hardware USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_0A&MI_%02x
USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_0A
USB\Vid_%04x&Pid_%04x&Cdc_0A&MI_%02x
USB\Vid_%04x&Pid_%04x&Cdc_0A
Identificadores compatibles USB\Class_02&SubClass_0A&Prot_%02X
USB\Class_02&SubClass_0A
USB\Class_02
Manejo especial Ninguno.

Modelo de control OBEX de WMCDC (varios DPO)

Hay dos maneras de enumerar colecciones de interfaz del modelo de control del Protocolo de intercambio de objetos (OBEX): el controlador primario genérico USB puede agrupar todas las interfaces OBEX y crear un único objeto de dispositivo físico (PDO) para todas las interfaces OBEX o el controlador primario puede crear un PDO independiente para cada interfaz OBEX.

Cuando el controlador primario genérico USB asigna archivos PDO independientes a cada interfaz OBEX, los PPO tienen las siguientes propiedades.

Propiedad Descripción
Referencia Especificación de subclase CDC del bus serie universal para dispositivos de comunicación móvil inalámbrica, versión 1.0, sección 6.5.
Clase de la interfaz maestra Clase de interfaz de comunicación (0x02).
Subclase de la interfaz maestra OBEX (0x0B).
Protocolo Ninguno (0x00).
Enumerated Sí.
Interfaces relacionadas Una interfaz de clase de datos a la que hace referencia el descriptor funcional de unión (UFD).
Identificadores de hardware USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_0B&MI_%02x
USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_0B
USB\Vid_%04x&Pid_%04x&Cdc_0B&MI_%02x
USB\Vid_%04x&Pid_%04x&Cdc_0B
Identificadores compatibles USB\Class_02&SubClass_0B&Prot_00
USB\Class_02&SubClass_0B
USB\Class_02
Manejo especial La configuración del Registro asociada a la instancia del controlador primario genérico USB que administra el dispositivo compuesto determina si las interfaces OBEX se administran con un solo PDO o varios PDO.

Modelo de control OBEX de WMCDC (PDO único)

Hay dos maneras de enumerar colecciones de interfaces del modelo de control del Protocolo de intercambio de objetos (OBEX): el controlador primario genérico USB puede agrupar todas las interfaces OBEX y crear un único objeto de dispositivo físico (PDO) para todas las interfaces OBEX o el controlador primario puede crear un PDO independiente para cada interfaz OBEX.

Cuando el controlador primario genérico USB asigna un único PDO a todas las interfaces OBEX, el PDO tiene las siguientes propiedades.

Propiedad Descripción
Referencia Especificación de subclase CDC del bus serie universal para dispositivos de comunicación móvil inalámbrica, versión 1.0, sección 6.5.
Clase de la interfaz maestra Clase de interfaz de comunicación (0x02).
Subclase de la interfaz maestra OBEX (0x0B).
Protocolo Ninguno (0x00).
Enumerated Sí.
Interfaces relacionadas Una interfaz de clase de datos a la que hace referencia el descriptor funcional de unión (UFD).
Identificadores de hardware USB\Vid_%04x&Pid_%04x&Rev_%04x&WPD_OBEX&MI_%02x
USB\Vid_%04x&Pid_%04x&Rev_%04x&WPD_OBEX
USB\Vid_%04x&Pid_%04x&WPD_OBEX&MI_%02x
USB\Vid_%04x&Pid_%04x&WPD_OBEX
Identificadores compatibles USB\Class_02&WPD_OBEX
USB\Class_02
Manejo especial La configuración del Registro asociada a la instancia del controlador primario genérico USB que administra el dispositivo compuesto determina si las interfaces OBEX se administran con un solo PDO o varios PDO. Para obtener una explicación de la configuración del Registro que especifica cómo el controlador primario genérico USB enumera las interfaces OBEX, consulte Enumeración de colecciones de interfaces en dispositivos compuestos USB.

Modelo de control de teléfono inalámbrico WMCDC

El controlador primario genérico USB no siempre enumera las colecciones de interfaz del modelo de control de teléfono inalámbrico (WHCM). La configuración del Registro asociada a la instancia del controlador primario genérico USB que administra la colección de interfaz WHCM determina si el controlador primario genérico USB crea un objeto de dispositivo físico (PDO) para la colección de interfaz o no. Para obtener una explicación de la configuración del Registro que especifica cómo el controlador primario genérico USB enumera las interfaces WHCM, consulte Enumeración de colecciones de interfaces en dispositivos compuestos USB.

Las colecciones de interfaz WHCM enumeradas tienen las siguientes propiedades.

Propiedad Descripción
Referencia Especificación de subclase CDC del bus serie universal para dispositivos de comunicación móvil inalámbrica, versión 1.0, sección 6.1.
Clase de la interfaz maestra Clase de interfaz de comunicación (0x02).
Subclase de la interfaz maestra WHCM (0x08).
Protocolo Ninguno (0x00).
Enumerated Sí.
Interfaces relacionadas Ninguno.
Identificadores de hardware USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_08&MI_%02x
USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_08
USB\Vid_%04x&Pid_%04x&Cdc_08&MI_%02x
USB\Vid_%04x&Pid_%04x&Cdc_08
Identificadores compatibles USB\Class_02&SubClass_08&Prot_00
USB\Class_02&SubClass_08
USB\Class_02
Manejo especial El descriptor funcional de unión (UFD) identifica las interfaces asociadas a un teléfono lógico.

Los formatos de identificador de hardware de los temas anteriores describen el uso de las siguientes convenciones:

  • Un formato printf en lenguaje C representa enteros. Por ejemplo, "%04x" significa un entero hexadecimal de 4 dígitos, "%02x" significa un entero hexadecimal de 2 dígitos, etc.
  • El entero que sigue a la cadena "Vid_" es una representación hexadecimal de 4 dígitos del código de proveedor que el comité USB (<www.usb.org>) asigna al proveedor.
  • El entero que sigue a la cadena "Pid_" es una representación hexadecimal de 4 dígitos del código de producto que el proveedor asigna al dispositivo.
  • El entero que sigue a la cadena "Rev_" es una representación hexadecimal de 4 dígitos del número de revisión del dispositivo.
  • El entero que sigue a la cadena "Cdc_" es la subclase de interfaz.
  • El entero que sigue a la cadena "Prot_" es el número de protocolo.
  • El entero que sigue a la cadena "MI_" es una representación hexadecimal de 2 dígitos del número de interfaz, que se extrae del campo bInterfaceNumber del descriptor de interfaz.

Enumeración de colecciones de interfaces en dispositivos USB con IAD

Si un dispositivo compuesto USB tiene un descriptor de asociación de interfaz (IAD) en su firmware, Windows enumera las colecciones de interfaz como si cada colección fuera un único dispositivo y asigna un único objeto de dispositivo físico (PDO) a cada colección de interfaz y asocia identificadores de hardware y compatibles (ID) con el PDO. Para obtener una descripción detallada de los IAD, vea USB Interface Association Descriptor. En esta sección se describen los identificadores de hardware y los identificadores compatibles asignados a colecciones de interfaz asociadas a un IAD.

Identificadores de hardware de dispositivos USB con IAD

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

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

En estos identificadores de hardware,

  • v(4) es el código de proveedor de cuatro dígitos que el comité USB asigna al proveedor y que se extrae del campo idVendor del descriptor de dispositivo.
  • p(4) es el código de producto de cuatro dígitos que el proveedor asigna al dispositivo y que se extrae del campo idProduct del descriptor de dispositivo.
  • r(4) es el número de versión del dispositivo de cuatro dígitos, en revisión decimal codificada binaria, que el proveedor asigna al dispositivo y que se extrae del campo bcdDevice del descriptor de dispositivo.
  • z(2) es el número de interfaz de dos dígitos que se extrae del campo bFirstInterface de IAD.

Identificadores compatibles de dispositivos USB con IAD

USB\Class_c(2)&SubClass_s(2)&Prot_p(2)

USB\Class_c(2)&SubClass_s(2)

USB\Class_c(2)

En estos identificadores compatibles, c(2), s(2) y p(2) contienen valores que se toman, respectivamente, de los campos bFunctionClass, bFunctionSubClass y bFunctionProtocol del IAD.

No se pueden usar IAD de forma recursiva para enlazar funciones de funciones. En concreto, si un dispositivo tiene descriptores de IAD en su firmware, el controlador primario genérico no agrupará las interfaces por clase de dispositivo de audio, como se describe en Enumeración de colecciones de interfaz en dispositivos compuestos USB.

Enumeración de colecciones de interfaz en dispositivos de audio sin IAD

En el caso de los dispositivos de audio, el sistema operativo Windows puede enumerar grupos de interfaces (colecciones de interfaz) asociados a una función y asignar un solo objeto de dispositivo físico (PDO) a cada grupo, incluso cuando el dispositivo no tiene un descriptor de asociación de interfaz (IAD).

El sistema operativo agrupa las interfaces de los dispositivos de audio compuesto en colecciones de interfaces, si las interfaces cumplen las condiciones siguientes:

  • Todas las interfaces de la colección de interfaces deben ser consecutivas. En otras palabras, las interfaces deben estar adyacentes entre sí en la memoria de firmware.
  • Todas las interfaces de la colección de interfaz deben pertenecer a la clase de dispositivo de audio. El fabricante del dispositivo especifica que una interfaz pertenece a la clase de dispositivo de audio asignando un valor de 0x01 al campo bInterfaceClass del descriptor de interfaz.
  • Cada interfaz de la colección de interfaz debe tener una subclase diferente de la primera interfaz de la colección. El campo bInterfaceSubClass del descriptor de interfaz especifica la subclase device de la interfaz.

Si una interfaz no cumple todas estas tres condiciones, Windows intentará enumerarla por separado en lugar de agruparla con las demás interfaces de clase de audio.

El sistema operativo no agrupa interfaces de clase de audio de forma especial si un descriptor de asociación de interfaz (IAD) está presente en el firmware del dispositivo. El método IAD siempre es el método preferido para agrupar interfaces USB.

En esta sección se describen los identificadores de hardware y compatibles asociados con el PDO creado por el sistema operativo para una colección de interfaces cuyas interfaces pertenecen a la clase de dispositivo de audio.

Identificadores de hardware de dispositivos de audio sin IAD

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

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

En estos identificadores de hardware,

  • v(4) es el código de proveedor de cuatro dígitos que el comité de estándares USB asigna al proveedor y que se extrae del campo idVendor del descriptor de dispositivo.
  • p(4) es el código de producto de cuatro dígitos que el proveedor asigna al dispositivo y que se extrae del campo idProduct del descriptor de dispositivo.
  • r(4) es el número de versión del dispositivo de cuatro dígitos, en revisión decimal codificada binaria, que el proveedor asigna al dispositivo y que se extrae del campo bcdDevice del descriptor de dispositivo.
  • z(2) es el número de interfaz de dos dígitos que se extrae del campo bInterfaceNumber del descriptor de interfaz.

Identificadores compatibles de dispositivos de audio sin IAD

USB\Class_c(2)&SubClass_s(2)&Prot_p(2)

USB\Class_c(2)&SubClass_s(2)

USB\Class_c(2)

En estos identificadores compatibles, c(2), s(2) y p(2) contienen valores que se toman, respectivamente, de los campos bInterfaceClass, bInterfaceSubClass y bInterfaceProtocol del primer descriptor de interfaz USB de cada colección de interfaces.