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.
Voici comment l’IRP est traité à chaque étape numérotée du diagramme :
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.
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.
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.
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.
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).
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.
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.
Rubriques connexes
Nœuds d’appareil et piles d’appareils
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour