La structure physique d'un pilote de périphérique est constitué d'un mode utilisateur, gestionnaire E / S, et un mode noyau.
Répartition des modes:
API - Application Programming le système d'exploitation utilise pour lancer le gestionnaire E / S.
Ntdll - bibliothèque de fonctions qui utilise les moignons pour lancer le système d'exploitation.
NtReadFile - Système utilisé pour créer et contrôler les demandes d'E / S.
I / O Manager - Sous-système en charge de tous les appareils qui décide de ce que chaque conducteur est autorisé à le faire.
IRP - Demande paquet utilisé par l'I / O pour demander des informations auprès des conducteurs.
IoCallDriver - Envoie IRP au pilote correct qui est associé à chaque DO.
Dans le mode utilisateur, l'application se connecte à l'API, qui est reliée à la Ntdll. La demande d'application se déplace alors dans le mode noyau par l'intermédiaire du gestionnaire E / S. Les gestionnaires d'E / S utilise un NTReadFile pour traiter la demande et l'envoie à l'IoCallDriver, qui à son tour envoie l'information au pilote correct. Le pilote décide alors quoi faire avec la demande. Ce sera la file d'attente pour plus tard, l'envoyer à un port matériel ou l'envoyer à un autre pilote.