Configurable
Les périphériques d’aujourd’hui doivent être configurables matériellement et leurs pilotes doivent être configurables par logiciel.
Un appareil est configurable matériellement s’il peut accepter différentes affectations des ressources matérielles du système, telles que les numéros de port d’E/S, sans être physiquement modifié. Par exemple, si un ensemble de disques Plug-and-Play enfichables à chaud sont connectés dans une configuration RAID (Redondant Array of Independent Disks), un utilisateur peut échanger des disques pendant que le système est en cours d’exécution. Si un appareil est configurable sur le matériel, ses pilotes ne peuvent pas contenir de valeurs codées en dur et dépendantes du système pour les ressources matérielles de l’appareil.
Un pilote est configurable par logiciel si :
Il peut recevoir et modifier dynamiquement les ressources matérielles de son appareil.
Les pilotes qui prennent en charge Plug-and-Play ne contiennent pas de valeurs codées en dur pour les ressources matérielles d’un appareil, et le pilote n’interroge pas non plus l’appareil pour déterminer ses affectations de ressources. Au lieu de cela, le système affecte dynamiquement des ressources à l’appareil, puis fournit des valeurs de ressource au pilote.
Il a été écrit sans hypothèses sur d’autres pilotes qui pourraient résider au-dessus ou en dessous de celui-ci dans sa pile de pilotes.
Par exemple, la conception d’un pilote de périphérique de niveau inférieur pour un disque doit être suffisamment flexible pour prendre en charge plusieurs systèmes de fichiers implémentés par plusieurs pilotes de système de fichiers de haut niveau, éventuellement sur un seul ordinateur.
En outre, si un ordinateur dispose d’une capacité de stockage de masse suffisante, ce même pilote de disque de niveau inférieur ne doit pas interférer avec la prise en charge d’un pilote intermédiaire pour la tolérance de panne (implémentée en tant que partitions mises en miroir, jeux de bandes ou jeux de volumes) dans un système de fichiers.
Le gestionnaire PnP et chaque pilote de bus matériel PnP fonctionnent ensemble pour fournir une interface entre le matériel de la plateforme pour un type spécifique de bus d’E/S et le logiciel du système. Le gestionnaire PnP crée une arborescence d’appareils, avec des nœuds qui représentent tous les appareils sur le système, y compris les bus. Pour chaque appareil, le gestionnaire PnP gère deux listes :
Liste des ressources matérielles que l’appareil est capable d’utiliser.
Liste des ressources matérielles qui sont réellement affectées à l’appareil.
Les pilotes de périphérique aident le gestionnaire PnP à créer ces listes, qui sont conservées dans le Registre. À mesure que des appareils sont ajoutés et supprimés du système, le gestionnaire PnP réattribue les ressources en fonction des besoins et met à jour les listes.
Le composant de couche d’abstraction matérielle (HAL) du système, qui est implémenté en tant que bibliothèque de liaisons dynamiques, est responsable d’une partie de la prise en charge spécifique à la plateforme au niveau matériel requise par d’autres composants système, y compris les pilotes en mode noyau.