Présentation des objets d’appareil
Le système d’exploitation représente les appareils par objets d’appareil. Un ou plusieurs objets d’appareil sont associés à chaque appareil. Les objets d’appareil servent de cible de toutes les opérations sur l’appareil.
Les pilotes en mode noyau doivent créer au moins un objet d’appareil pour chaque appareil, avec les exceptions suivantes :
Les minidrivers qui ont un pilote de classe ou de port associé n’ont pas besoin de créer leurs propres objets d’appareil. Le pilote de classe ou de port crée les objets d’appareil et répartit les opérations sur le minidriver.
Les pilotes qui font partie de sous-systèmes spécifiques au type d’appareil, tels que les pilotes miniportS NDIS, ont leurs objets d’appareil créés par le sous-système.
Consultez la documentation relative à votre type d’appareil particulier pour déterminer si votre pilote crée ses propres objets d’appareil.
Certains objets d’appareil ne représentent pas d’appareils physiques. Un pilote logiciel uniquement, qui gère les demandes d’E/S mais ne les transmet pas au matériel, doit toujours créer un objet d’appareil pour représenter la cible de ses opérations.
Pour plus d’informations sur la façon dont votre pilote peut créer des objets d’appareil, consultez Création d’un objet d’appareil.
Les appareils sont généralement représentés par plusieurs objets d’appareil, un pour chaque pilote de la pile de pilotes qui gère les demandes d’E/S pour l’appareil. Les objets d’appareil d’un appareil sont organisés dans une pile d’appareils. Chaque fois qu’une opération est effectuée sur un appareil, le système transmet une structure de données IRP au pilote de l’objet périphérique supérieur dans la pile d’appareils. Chaque pilote gère l’IRP ou le transmet au pilote associé à l’objet d’appareil inférieur suivant dans la pile d’appareils. Pour plus d’informations sur les piles d’appareils, consultez Exemple de pile d’appareils WDM. Pour plus d’informations sur les IRPs, consultez Gestion des IRPs.
Les objets d’appareil sont représentés par des structures DEVICE_OBJECT , qui sont gérées par le gestionnaire d’objets. Le gestionnaire d’objets fournit les mêmes fonctionnalités pour les objets d’appareil que pour les autres objets système. En particulier, un objet d’appareil peut être nommé, et un objet d’appareil nommé peut avoir des handles ouverts dessus. Pour plus d’informations sur les objets d’appareil nommés, consultez Objets d’appareil nommés.
Le système fournit un stockage dédié pour chaque objet d’appareil, appelé extension de périphérique, que le pilote peut utiliser pour le stockage spécifique à l’appareil. L’extension d’appareil est créée et libérée par le système avec l’objet d’appareil. Pour plus d’informations, consultez Extensions d’appareil.
La figure suivante illustre la relation entre les objets d’appareil et le gestionnaire d’E/S.
La figure montre les membres de la structure DEVICE_OBJECT qui intéressent un enregistreur de pilote. Pour plus d’informations sur ces membres, consultez Création d’un objet d’appareil, Initialisation d’un objet d’appareil et Propriétés d’objets d’appareil.