Partager via


Masquage d’appareils de Gestionnaire de périphériques

Par défaut, Gestionnaire de périphériques affiche l’état de chaque appareil sur un ordinateur. Dans certaines situations, vous pouvez empêcher certains appareils d’apparaître dans Gestionnaire de périphériques. Par exemple, une carte mère peut avoir un contrôleur CardBus avec un emplacement qui n’est pas accessible à l’utilisateur. Étant donné que l’utilisateur ne peut pas utiliser l’emplacement, vous ne souhaitez pas que Gestionnaire de périphériques affiche des informations sur l’appareil.

Pour masquer un appareil dans Gestionnaire de périphériques, vous pouvez marquer l’appareil comme un appareil masqué. En règle générale, Gestionnaire de périphériques n’affiche pas les appareils masqués. (Notez toutefois que les utilisateurs peuvent remplacer ce paramètre et afficher tous les appareils dans Gestionnaire de périphériques, même les appareils masqués. Pour plus d’informations sur la façon de remplacer ce paramètre, consultez Affichage des appareils masqués.)

Il existe deux façons de marquer votre appareil comme masqué : dans le pilote de l’appareil ou à l’aide du BIOS ACPI.

Masquage d’appareils à partir d’un pilote

Les pilotes disposent de deux façons de marquer un pilote comme étant masqué :

  • Un pilote de fonction ou un pilote de filtre de fonction peut demander au système d’exploitation de masquer un appareil démarré avec succès en répondant au IRP_MN_QUERY_PNP_DEVICE_STATE IRP. Lorsque l’IRP arrive, le pilote doit définir le PNP_DEVICE_DONT_DISPLAY_UI bit dans IoStatus.Information sur TRUE dans la routine de répartition du pilote.

  • Sur Windows XP et les versions ultérieures des systèmes d’exploitation Windows, un pilote de bus ou un pilote de filtre de bus peut masquer n’importe quel appareil, démarré ou non, en répondant au IRP_MN_QUERY_CAPABILITIES IRP. Lorsque l’IRP arrive, le pilote doit définir le membre Parameters.DeviceCapabilities.NoDisplayInUI sur TRUE dans la routine de distribution du pilote. Dans certains cas, un pilote de filtre de bus peut devoir définir ce bit dans une routine d’achèvement. Cette étape supplémentaire est requise lorsque la routine de répartition du pilote de bus sous-jacent efface incorrectement tous les champs de capacité définis par d’autres pilotes.

Masquage d’appareils à l’aide du BIOS ACPI

Vous pouvez marquer un appareil comme masqué dans le BIOS ACPI. Le BIOS peut exposer une méthode _STA pour l’appareil. La méthode _STA retourne un masque de bits. Bit 2 (masque 0x4) spécifie si Gestionnaire de périphériques doit rendre l’appareil visible par défaut. Ce bit doit être 1 si l’appareil doit être rendu visible et 0 dans le cas contraire.

Par exemple, l’exemple de code suivant montre comment un contrôleur USB sur le bus racine est masqué.

Device(PCI0) // Root PCI bus
_HID *PNP0A03 
...
    Device(UCTL)  // USB controller
    _ADR 0xddddffff // dddd = device, ffff = function
    _STA 0xB // Device present, but not shown

Dans Microsoft Windows 2000, vous pouvez masquer uniquement les appareils démarrés et en cours de travail. Dans Windows XP et les versions ultérieures de Windows, vous pouvez également masquer les appareils défectueux. Le bit 3 (masque 0x8) retourné par la méthode _STA indique si un appareil fonctionne correctement. Ce bit est 1 si l’appareil fonctionne correctement et est 0 dans le cas contraire. Par exemple, l’exemple de code suivant montre comment un BIOS indique qu’un contrôleur USB est défectueux et doit être masqué :

Device(PCI0) // Root PCI bus 
_HID *PNP0A03 
...
    Device(UCTL) // USB controller
    _ADR 0xddddffff //  dddd = device, ffff = function
    _STA 0x3 // Present, but broken and not shown 

Note Le bit « décodage » (0x2) n’a aucune pertinence pour les appareils décrits par _ADR méthodes. Les exemples de code précédents fonctionnent également sans le jeu de bits de décodage. Les enregistreurs BIOS doivent suivre l’état de décodage uniquement pour les appareils qui sont décrits par le biais de méthodes _HID.