Types de pilotes Windows

Il existe deux types de pilotes Microsoft Windows de base :

  • Les pilotes en mode utilisateur s’exécutent en mode utilisateur, et ils fournissent généralement une interface entre une application Win32 et des pilotes en mode noyau ou d’autres composants du système d’exploitation.

    Par exemple, dans Windows Vista, tous les pilotes d’imprimante s’exécutent en mode utilisateur. Pour plus d’informations sur les composants du pilote d’imprimante, consultez Présentation de l’impression.

  • Les pilotes en mode noyau s’exécutent en mode noyau dans le cadre de l’exécutif, qui se compose de composants de système d’exploitation en mode noyau qui gèrent les E/S, les Plug-and-Play la mémoire, les processus et les threads, la sécurité, etc. Les pilotes en mode noyau sont généralement en couches. En règle générale, les pilotes de niveau supérieur reçoivent généralement des données des applications, filtrent les données et les passent à un pilote de niveau inférieur qui prend en charge les fonctionnalités des appareils.

    Certains pilotes en mode noyau sont également des pilotes WDM, qui sont conformes au modèle de pilote Windows (WDM). Tous les pilotes WDM prennent en charge Plug-and-Play et la gestion de l’alimentation. Les pilotes WDM sont compatibles avec la source (mais pas binaire) sur les systèmes d’exploitation Windows 98/Me et Windows 2000 et versions ultérieures.

    Comme le système d’exploitation lui-même, les pilotes en mode noyau sont implémentés en tant que composants modulaires discrets qui ont un ensemble bien défini de fonctionnalités requises. Tous les pilotes en mode noyau fournissent un ensemble de routines de pilotes standard définies par le système.

La figure suivante divise les pilotes en mode noyau en plusieurs types.

diagramme illustrant les types de pilotes en mode noyau.

Comme le montre la figure, il existe trois types de base de pilotes en mode noyau dans une pile de pilotes : le niveau le plus élevé, le niveau intermédiaire et le niveau le plus bas. Chaque type ne diffère que légèrement dans sa structure, mais considérablement en termes de fonctionnalités :

  1. Pilotes de plus haut niveau. Les pilotes de niveau supérieur incluent les pilotes de système de fichiers (FSD) qui prennent en charge les systèmes de fichiers, tels que :

    • NTFS

    • Table d’allocation de fichiers (FAT)

    • Système de fichiers CD-ROM (CDFS)

    Les pilotes de niveau supérieur dépendent toujours de la prise en charge des pilotes de niveau inférieur sous-jacents, tels que les pilotes de fonction de niveau intermédiaire et les pilotes de bus matériel de niveau inférieur.

  2. Pilotes intermédiaires, tels qu’un disque virtuel, un miroir ou un pilote de classe spécifique au type de périphérique. Les pilotes intermédiaires dépendent de la prise en charge des pilotes de niveau inférieur sous-jacents. Les pilotes intermédiaires sont subdivisé comme suit :

    • Les pilotes de fonction contrôlent des périphériques spécifiques sur un bus d’E/S.

    • Les pilotes de filtre s’insèrent au-dessus ou au-dessous des pilotes de fonction.

    • Les pilotes de bus logiciel présentent un ensemble d’appareils enfants auxquels les pilotes de classe, de fonction ou de filtre de niveau supérieur peuvent s’attacher.

      Par exemple, un pilote qui contrôle un adaptateur multifonction avec un ensemble intégré d’appareils hétérogènes est un pilote de bus logiciel.

    • Tout pilote de classe fourni par le système qui exporte une interface de classe/miniclasse définie par le système est, en effet, un pilote intermédiaire avec un ou plusieurs pilotes de miniclasse liés (parfois appelés minidrivers). Chaque paire classe/minidriver liée fournit des fonctionnalités équivalentes à celles d’un pilote de fonction ou d’un pilote de bus logiciel.

  3. Les pilotes de niveau le plus bas contrôlent un bus d’E/S auquel les périphériques sont connectés. Les pilotes de niveau inférieur ne dépendent pas des pilotes de niveau inférieur.

    • Les pilotes de bus matériel sont fournis par le système et contrôlent généralement les bus d’E/S configurables dynamiquement.

      Les pilotes de bus matériel travaillent avec le gestionnaire de Plug-and-Play pour configurer et reconfigurer les ressources matérielles système, pour tous les appareils enfants connectés aux bus d’E/S que le pilote contrôle. Ces ressources matérielles incluent des mappages pour la mémoire de l’appareil et les demandes d’interruption (IRQs). (Les pilotes de bus matériel sous-énumérent certaines des fonctionnalités fournies par le composant HAL dans les versions du système d’exploitation Windows NT antérieurs à Windows 2000.)

    • Les pilotes hérités qui contrôlent directement un appareil physique sont des pilotes de niveau le plus bas.