Partager via


Couches de pilotes WDM : 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 un 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 d’hôte USB et est connecté au port unique de 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 de bus, car ils fournissent chacun des ports. Le joystick n’est pas un appareil de bus.

La figure suivante montre un exemple d’ensemble de pilotes qui peuvent être chargés pour le matériel du joystick USB dans la figure précédente.

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

À partir du bas de la figure précédente, les pilotes de l’exemple de pile sont les suivants :

  • Un 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 de miniclasse sont fournis avec le système par Microsoft.

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

  • Trois pilotes pour le joystick ; l’un d’eux est une paire classe/miniclasse.

    Le pilote de fonction, le pilote main du joystick, est la paire de pilotes de classe HID/HID USB miniclasse. (HID représente « Périphérique d’interface humaine ».) Le pilote HID USB miniclasse prend en charge la sémantique propre à 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, la paire pilote de classe HID/pilote USB HID miniclasse prend en charge tout périphérique compatible HID dans le système sur un bus USB. Une paire de pilotes de classe HID/hid 1394 miniclasse permettrait de traiter 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 le 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 périphérique 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 à des fins d’exhaustivité.