Partager via


Couches de pilotes WDM : Un exemple

Cette section décrit un ensemble possible de pilotes WDM pour le matériel USB afin d’illustrer les couches de pilotes WDM.

La figure suivante montre un exemple de configuration matérielle PnP pour un joystick USB.

diagramme illustrant l’exemple de matériel plug-and-play pour un joystick usb.

Dans cette figure, le joystick USB se connecte à un port sur un hub USB. Le hub USB de cet exemple réside sur la carte du contrôleur hôte USB et est connecté au port unique sur la carte du contrôleur hôte USB. Le contrôleur hôte USB se connecte à un bus PCI. Du point de vue pnP, le hub USB, le contrôleur hôte USB et le bus PCI sont tous des périphériques bus, car ils fournissent chacun des ports. Le joystick n’est pas un appareil de bus.

La figure suivante montre un ensemble type de pilotes susceptibles d'être chargés pour le matériel de joystick USB dans la figure précédente.

diagramme illustrant des exemples de couches de pilote plug-and-play pour un joystick usb.

À partir de la partie inférieure de l'illustration précédente, les pilotes dans la pile d'échantillon sont les suivants :

  • Pilote PCI qui pilote le bus PCI. Il s’agit d’un pilote de bus PnP. Le pilote de bus PCI est fourni avec le système par Microsoft.

  • Le pilote de bus pour le contrôleur hôte USB est implémenté en tant que paire de pilotes classe/miniclasse. La classe de contrôleur hôte USB et les pilotes miniclasses sont fournis avec le système par Microsoft.

  • Pilote de bus du hub USB qui pilote le hub USB. Le pilote du hub USB est fourni avec le système par Microsoft.

  • Trois pilotes pour l’appareil joystick ; l’une d’elles est une paire classe/miniclasse.

    Le pilote de fonction, le pilote principal de l’appareil joystick, est la paire de pilotes HID class/HID USB miniclass. (HID représente « Human Interface Device ».) Le pilote de miniclasse HID USB prend en charge la sémantique spécifique à l’USB des périphériques HID, en s’appuyant sur la DLL du pilote de classe HID pour la prise en charge générale de HID.

    Un pilote de fonction peut être spécifique à un appareil particulier ou, comme dans le cas de HID, un pilote de fonction peut traiter un groupe d’appareils. Dans cet exemple, le duo pilote de classe HID et pilote USB miniclass HID gère n’importe quel périphérique compatible HID dans le système sur un bus USB. Une paire de pilotes de classe HID et de miniclasse HID 1394 desservirait n’importe quel appareil compatible HID sur un bus 1394.

    Un pilote de fonction peut être écrit par le fournisseur de l’appareil ou par Microsoft. Dans cet exemple, le pilote de fonction (la paire de pilotes HID class/HID USB miniclass) est écrit par Microsoft.

    Il existe deux pilotes de filtre pour l’appareil joystick dans cet exemple : un filtre de classe de niveau supérieur qui ajoute une fonctionnalité de bouton macro et un filtre d’appareil de niveau inférieur qui permet au joystick d’émuler un appareil de souris.

    Le filtre de niveau supérieur est écrit par une personne qui doit filtrer les E/S du joystick et le pilote de filtre de niveau inférieur est écrit par le fournisseur du joystick.

  • Les clients HID en mode noyau et en mode utilisateur et l’application ne sont pas des pilotes, mais sont affichés pour l’exhaustivité.