Compartir a través de


Capas del controlador WDM: un ejemplo

En esta sección se describe un posible conjunto de controladores WDM para hardware USB para ilustrar las capas de controladores WDM.

En la ilustración siguiente se muestra una configuración de hardware PnP de ejemplo para un joystick USB.

diagrama que muestra un ejemplo de hardware plug-and-play para un joystick USB.

En esta figura, el joystick USB se conecta a un puerto en un hub USB. El concentrador USB de este ejemplo reside en la placa controladora del host USB y se conecta al puerto único en la placa del controlador del host USB. El controlador de host USB se conecta a un bus PCI. Desde la perspectiva de PnP, el concentrador USB, el controlador de host USB y el bus PCI son todos los dispositivos de bus porque proporcionan puertos. El joystick no es un dispositivo de autobús.

En la figura siguiente se muestra un conjunto de controladores de ejemplo que posiblemente se cargarían para el hardware del joystick USB en la figura anterior.

diagrama que ilustra las capas de controlador plug and play de ejemplo para un joystick usb.

A partir de la parte inferior de la ilustración anterior, los controladores de la pila de ejemplo incluyen:

  • Un controlador PCI que controla el bus PCI. Este es un conductor de autobús PnP. Microsoft proporciona el controlador de bus PCI con el sistema.

  • El controlador de bus para el controlador host USB se implementa como un conjunto de controladores clase/miniclase. Microsoft proporciona la clase de controlador de host USB y los controladores de miniclase con el sistema.

  • El controlador del bus del concentrador USB que gestiona el concentrador USB. Microsoft proporciona el controlador del concentrador USB con el sistema.

  • Tres controladores para el dispositivo "joystick"; uno de ellos es una combinación de clase/miniclase.

    El controlador funcional, el controlador principal del dispositivo joystick, es el par de controladores de clase HID/miniclase USB HID. (HID representa "dispositivo de interfaz humana"). El controlador miniclase USB HID admite la semántica específica de USB de los dispositivos HID y se basa en la DLL del controlador de clase HID para la compatibilidad general con HID.

    Un controlador de función puede ser específico de un dispositivo determinado o, como en el caso de HID, un controlador de funciones puede atender a un grupo de dispositivos. En este ejemplo, el controlador de clase HID y el controlador de miniclase USB HID prestan servicios a cualquier dispositivo compatible con HID en el sistema conectado a un bus USB. Un par de controladores de clase HID/HID 1394 miniclase atendería cualquier dispositivo compatible con HID en un bus 1394.

    El proveedor del dispositivo o Microsoft pueden escribir un controlador de función. En este ejemplo, el controlador de función (compuesto por la clase HID y el par de controladores miniclase USB HID) es escrito por Microsoft.

    Hay dos controladores de filtro para el joystick en este ejemplo: un filtro de clase de nivel superior, que agrega una función de botón macro, y un filtro de dispositivo de nivel inferior, que permite que el joystick emule un dispositivo de ratón.

    El filtro de nivel superior lo escribe alguien que necesita filtrar la E/S del joystick y el proveedor del joystick escribe el controlador de filtro de nivel inferior.

  • Los clientes HID en modo núcleo y modo usuario, así como la aplicación, no son controladores, pero se muestran por completitud.