Compartir a través de


Capas de controlador WDM: un ejemplo

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

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

diagrama que ilustra el hardware plug and play de ejemplo para un joystick usb.

En esta figura, el joystick USB se conecta a un puerto en un concentrador USB. El concentrador USB de este ejemplo reside en la placa controladora del host USB y se conecta al puerto único de 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 ilustración siguiente se muestra un conjunto de controladores de ejemplo que podrían cargarse 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 par de controladores de clase/miniclase. Microsoft proporciona la clase del controlador de host USB y los controladores de miniclase con el sistema.

  • Controlador del bus de concentrador USB que controla el concentrador USB. Microsoft proporciona el controlador del concentrador USB con el sistema.

  • Tres controladores para el dispositivo de joystick; uno de ellos es un par de clase/miniclase.

    El controlador de función, 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, basándose 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 función puede atender un grupo de dispositivos. En este ejemplo, el controlador de clase HID/miniclase HID USB miniclase servicios cualquier dispositivo compatible con HID en el sistema en 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, Microsoft escribe el controlador de función (la clase HID/par de controladores miniclase USB HID).

    Hay dos controladores de filtro para el dispositivo joystick en este ejemplo: un filtro de clase de nivel superior que agrega una característica de botón de macro y un filtro de dispositivo de nivel inferior que permite que el joystick emule un dispositivo del mouse.

    El filtro de nivel superior está escrito por alguien que necesita filtrar la E/S del joystick y el controlador de filtro de nivel inferior está escrito por el proveedor del joystick.

  • Los clientes HID en modo kernel y en modo de usuario y la aplicación no son controladores, pero se muestran por integridad.