Controlador primario genérico USB (Usbccgp.sys)

En este artículo se describe un controlador independiente denominado controlador primario genérico USB (Usbccgp.sys), proporcionado por Microsoft para dispositivos compuestos.

Muchos dispositivos USB exponen varias interfaces USB. En la terminología usb, estos dispositivos se denominan dispositivos compuestos. El sistema operativo Windows incluye una instalación primaria genérica en el controlador de bus USB (Usbhub.sys) que expone cada interfaz del dispositivo compuesto como un dispositivo independiente. Esta instalación se simplifica y mejora al transferirla a un controlador independiente denominado controlador primario genérico USB (Usbccgp.sys). El proveedor de dispositivos puede usar las características del controlador primario genérico para hacer uso selectivo de la compatibilidad con controladores proporcionados por Microsoft para algunas interfaces.

Las interfaces de algunos dispositivos compuestos funcionan de forma independiente. Por ejemplo, un teclado USB compuesto con botones de encendido podría tener una interfaz para el teclado y otra interfaz para los botones de encendido. El controlador primario genérico USB enumera cada una de estas interfaces como un dispositivo independiente. El sistema operativo carga el controlador de teclado proporcionado por Microsoft para administrar la interfaz de teclado y el controlador de teclas de alimentación suministrados por Microsoft para administrar la interfaz de teclas de alimentación.

Si los controladores nativos de Windows no admiten la interfaz de un dispositivo, el proveedor del dispositivo debe proporcionar un controlador para la interfaz y un archivo INF. El archivo INF debe tener una sección INF DDInstall que coincida con el identificador de dispositivo de la interfaz. El archivo INF no debe coincidir con el identificador de dispositivo para el propio dispositivo compuesto, ya que impide que el controlador primario genérico se cargue. Para obtener una explicación de cómo el sistema operativo carga el controlador primario genérico USB, consulte Enumeración de dispositivos compuestos USB.

Algunos dispositivos agrupan interfaces en colecciones de interfaz que funcionan conjuntamente para realizar una función determinada. Cuando las interfaces se agrupan en colecciones de interfaces, el controlador primario genérico trata cada colección, en lugar de cada interfaz individual, como dispositivo. Para obtener más información sobre cómo el controlador primario genérico administra las colecciones de interfaz, vea Enumeración de colecciones de interfaz en dispositivos compuestos USB.

Una vez que Windows carga los controladores de cliente para las interfaces de un dispositivo compuesto, el controlador primario genérico multiplexa el flujo de datos de los controladores cliente, combinando estas interacciones independientes en un único flujo de datos para el dispositivo compuesto. El elemento primario genérico es el propietario de la directiva de energía para todo el dispositivo compuesto y todas sus interfaces. También administra la sincronización y las solicitudes de Plug and Play.

El controlador primario genérico puede simplificar la tarea de los proveedores de hardware compuesto, si los controladores proporcionados por Microsoft admiten algunas interfaces, pero no otras. Los proveedores de estos dispositivos solo necesitan proporcionar controladores para las interfaces no admitidas, ya que el controlador primario genérico facilita el uso de controladores proporcionados por Microsoft para las interfaces admitidas.

En las secciones siguientes se describen las características y funciones del controlador primario genérico: