Share via


Piles de pilotes

La plupart des demandes envoyées aux pilotes de périphérique sont empaquetées dans des paquets de demandes d’E/ S (IRP). Chaque appareil est représenté par un nœud d’appareil et chaque nœud d’appareil a une pile d’appareils. Pour plus d’informations, consultez Nœuds d’appareil et piles d’appareils. Pour envoyer une demande de lecture, d’écriture ou de contrôle à un appareil, le gestionnaire d’E/S localise le nœud de l’appareil, puis envoie un IRP à la pile d’appareils de ce nœud. Parfois, plusieurs piles d’appareils sont impliquées dans le traitement d’une demande d’E/S. Quel que soit le nombre de piles de périphériques impliquées, la séquence globale de pilotes qui participent à une demande d’E/S est appelée pile de pilotes pour la demande. Nous utilisons également le terme pile de pilotes pour faire référence à l’ensemble en couches de pilotes pour une technologie particulière.

Demandes d’E/S traitées par plusieurs piles d’appareils

Dans certains cas, plusieurs piles d’appareils sont impliquées dans le traitement d’un IRP. Le diagramme suivant illustre un cas où quatre piles d’appareils sont impliquées dans le traitement d’une IRP unique.

diagramme de quatre nœuds d’appareil, chacun avec une pile d’appareils.

Voici comment l’IRP est traité à chaque étape numérotée du diagramme :

  1. L’IRP est créé par Disk.sys, qui est le pilote de fonction dans la pile de périphériques pour le nœud Mon périphérique de stockage USB. Disk.sys transmet l’IRP dans la pile de l’appareil à Usbstor.sys.

  2. Notez que Usbstor.sys est le pilote PDO pour le nœud Mon périphérique de stockage USB et le pilote FDO pour le nœud Périphérique de stockage de masse USB. À ce stade, il n’est pas important de décider si l’IRP appartient à la paire (PDO, Usbstor.sys) ou à la paire (FDO, Usbstor.sys). L’IRP appartient au pilote, Usbstor.sys, et le pilote a accès à la fois à l’AOP et au FDO.

  3. Une fois Usbstor.sys a terminé de traiter l’IRP, il transmet l’IRP à Usbhub.sys. Usbhub.sys est le pilote PDO pour le nœud Périphérique de stockage de masse USB et le pilote FDO pour le nœud hub racine USB. Il n’est pas important de déterminer si l’IRP appartient à la paire (PDO, Usbhub.sys) ou à la paire (FDO, Usbhub.sys). L’IRP appartient au pilote, Usbhub.sys, et le pilote a accès à la fois à l’AOP et au FDO.

  4. Lorsque Usbhub.sys a terminé de traiter l’IRP, il transmet l’IRP à la paire (Usbuhci.sys, Usbport.sys).

    Usbuhci.sys est un pilote de miniport et Usbport.sys est un pilote de port. La paire (miniport, port) joue le rôle d’un seul pilote. Dans ce cas, le pilote miniport et le pilote de port sont écrits par Microsoft. La paire (Usbuhci.sys, Usbport.sys) est le pilote PDO pour le nœud hub racine USB, et la paire (Usbuhci.sys, Usbport.sys) est également le pilote FDO pour le nœud du contrôleur hôte USB. La paire (Usbuhci.sys, Usbport.sys) effectue la communication réelle avec le matériel du contrôleur hôte, qui communique à son tour avec le périphérique de stockage USB physique.

Pile de pilotes pour une demande d’E/S

Considérez la séquence de quatre pilotes qui ont participé à la demande d’E/S illustrée dans le diagramme précédent. Nous pouvons obtenir une autre vue de la séquence en nous concentrant sur les pilotes plutôt que sur les nœuds de périphérique et leurs piles de périphériques individuelles. Le diagramme suivant montre les pilotes dans l’ordre de haut en bas. Notez que Disk.sys est associé à un objet de périphérique, mais que chacun des trois autres pilotes est associé à deux objets de périphérique.

diagramme d’une pile de pilotes, montrant le pilote supérieur associé à un fdo uniquement, et les trois autres pilotes associés à un pdo et un fdo.

La séquence de pilotes qui participent à une demande d’E/S est appelée pile de pilotes pour la demande d’E/S. Pour illustrer une pile de pilotes pour une demande d’E/S, nous dessinons les pilotes de haut en bas dans l’ordre dans lequel ils participent à la demande.

Notez que la pile de pilotes pour une demande d’E/S est très différente de la pile de périphériques pour un nœud de périphérique. Notez également que la pile de pilotes pour une demande d’E/S ne reste pas nécessairement dans une branche de l’arborescence de périphériques.

Piles de pilotes de technologie

Considérez la pile de pilotes pour la requête d’E/S illustrée dans le diagramme précédent. Si nous donnons à chacun des pilotes un nom convivial et apportez de légères modifications au diagramme, nous avons un diagramme de blocs similaire à la plupart de ceux qui apparaissent dans la documentation du Kit de pilotes Windows (WDK).

diagramme d’une pile de pilotes montrant des noms conviviaux pour les pilotes : pilote de classe de disque en haut suivi du pilote de port de stockage usb, puis pilote de hub usb et (usb 2 miniport, port USB).

Dans le diagramme, la pile de pilotes est divisée en trois sections. Nous pouvons considérer chaque section comme appartenant à une technologie particulière ou à un composant ou une partie spécifique du système d’exploitation. Par exemple, nous pouvons dire que la première section en haut de la pile des pilotes appartient au gestionnaire de volumes, la deuxième section appartient au composant de stockage du système d’exploitation et la troisième section appartient à la partie USB principale du système d’exploitation.

Considérez les pilotes dans la troisième section. Ces pilotes sont un sous-ensemble d’un ensemble plus large de pilotes USB principaux fournis par Microsoft pour gérer différents types de requêtes USB et de matériel USB. Le diagramme suivant montre à quoi peut ressembler l’ensemble du diagramme de blocs de cœurs USB.

diagramme montrant la pile du pilote de technologie pour le bloc usb core possible.

Un diagramme de blocs qui montre tous les pilotes d’une technologie particulière ou d’un composant ou d’une partie spécifique du système d’exploitation est appelé pile de pilotes de technologie. En règle générale, les piles de pilotes de technologie portent des noms tels que la pile de pilotes USB Core, la pile de stockage, la pile de pilotes 1394 et la pile de pilotes audio.

Note Le diagramme de bloc de cœur USB de cette rubrique montre l’une des différentes façons possibles d’illustrer les piles de pilotes de technologie pour USB 1.0 et 2.0. Pour obtenir les diagrammes officiels des piles de pilotes USB 1.0, 2.0 et 3.0, consultez Architecture de la pile de pilotes USB.

Nœuds d’appareil et piles d’appareils

Minidrivers et paires de pilotes

Concepts pour tous les développeurs de pilotes