Partager via


ID de conteneur générés à partir d’un remplacement de fonctionnalité d’appareil amovible

À compter de Windows 7, les nouveaux appareils doivent fournir un ID unique spécifique au bus (comme décrit dans ID de conteneur générés à partir d’un ID unique Bus-Specific).

Les périphériques et les pilotes de bus doivent également définir correctement la fonctionnalité d’appareil amovible (comme décrit dans ID de conteneur générés à partir de la fonctionnalité d’appareil amovible). Pour plus d’informations sur la fonctionnalité d’appareil amovible, consultez Vue d’ensemble de la fonctionnalité d’appareil amovible.

Windows 7 et versions ultérieures de Windows prennent également en charge un mécanisme pour remplacer la fonctionnalité d’appareil amovible signalée. Ce mécanisme est utile pour les appareils hérités qui signalent incorrectement la fonctionnalité d’appareil amovible.

Bien que le mécanisme de remplacement ne modifie pas la valeur de la fonctionnalité d’appareil amovible, il force le gestionnaire PnP à utiliser le paramètre de remplacement et non la valeur de la capacité d’appareil amovible lors de la génération d’ID de conteneur pour les appareils.

Grâce à ce mécanisme de remplacement, un ID de conteneur peut être généré via une méthode basée sur le Registre. Dès que l’ID de conteneur est généré pour le nœud d’appareil le plus haut (parent) (devnode) d’un appareil, le même ID de conteneur est hérité par chaque devnode enfant de l’appareil via l’heuristique décrite dans ID de conteneur générés à partir de la fonctionnalité d’appareil amovible.

Le mécanisme de remplacement est une table de recherche basée sur le Registre qui se compose de clés de Registre mappées à des appareils spécifiques. Cette table de remplacement est conservée sous la clé de Registre DeviceOverrides et se compose des clés et sous-clés de Registre suivantes.

Niveau table Nom de clé/sous-clé de Registre Description

1

DeviceOverrides

Clé parente pour tous les remplacements de fonctionnalités d’appareil amovibles.

2

HardwareID

Spécifie l’ID matériel d’un appareil auquel le remplacement de la fonctionnalité amovible s’applique.

Le nom de cette sous-clé est l’ID matériel réel, avec tous les caractères de barre oblique inverse ('') remplacés par des caractères nombre ('#').

2

CompatibleID

Spécifie l’ID compatible d’un appareil auquel s’applique le remplacement de la fonctionnalité d’appareil amovible.

Le nom de cette sous-clé est l’ID matériel réel, avec tous les caractères de barre oblique inverse ('') remplacés par des caractères nombre ('#').

3

LocationPaths

Spécifie que seul le chemin d’accès d’emplacement du nœud d’appareil parent (devnode) de l’appareil sera appliqué au remplacement de la fonctionnalité d’appareil amovible.

3

ChildLocationPaths

Spécifie que le chemin d’accès d’emplacement des devnodes enfants de l’appareil sera appliqué au remplacement de la fonctionnalité d’appareil amovible.

Note Le devnode parent de l’appareil spécifié n’est pas affecté par le remplacement de la fonctionnalité d’appareil amovible, sauf si une sous-clé de Registre LocationPaths est également spécifiée ou qu’une sous-clé de Registre ChildLocationPaths est spécifiée pour le devnode parent.

4

LocationPath

Spécifie le chemin d’emplacement discret du devnode auquel s’applique le remplacement de la fonctionnalité d’appareil amovible.

Le nom de cette sous-clé est le chemin d’accès d’emplacement réel d’un seul devnode instance d’un appareil installé sur l’ordinateur.

4

*

Spécifie que le remplacement de la fonctionnalité d’appareil amovible s’applique à tous les devnodes pour l’appareil spécifié.

Dans les sous-clés LocationPath et * registre, une valeur DWORD (amovible) spécifie si les devnodes applicables sont considérés comme amovibles (1) ou non amovibles (0).

Exemple 1

L’exemple suivant montre un remplacement d’appareil pour un devnode qui correspond à une sous-clé de Registre HardwareID en plus d’un chemin d’accès d’emplacement spécifié par le biais de la sous-clé de Registre LocationPaths .

Dans cet exemple, la substitution désactive la fonctionnalité d’appareil amovible et est appliquée à tous les devnodes qui ont un ID matériel USB\VID_1234&PID_5678 au niveau du chemin d’accès d’emplacement PCIROOT(0)#PCI(102)#USBROOT(0)#USB(1).

Voici un exemple de format de table du Registre pour ce remplacement.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceOverrides
    USB#VID_1234&PID_5678
        LocationPaths
            PCIROOT(0)#PCI(102)#USBROOT(0)#USB(1)
                Removable=0

Dans cet exemple, USB#VID_1234&PID_5678 est le nom de la sous-clé de Registre HardwareID et PCIROOT(0)#PCI(102)#USBROOT(0)#USB(1) est le nom de la sous-clé de Registre LocationPath .

Cette substitution modifie l’interprétation de la topologie d’appareil par le gestionnaire de Plug-and-Play (PnP). Notez que le devnode avec une valeur d’ID matériel USB\VID_1234&PID_5678 a été marqué comme non amovible dans le Registre. Un nouvel ID de conteneur n’est pas généré pour ce devnode, car le gestionnaire PnP interprète le devnode comme n’étant pas amovible de son parent. Au lieu de cela, USB\VID_1234&PID_5678 (et tous ses enfants) héritent de l’ID de conteneur (ContainerID {A}) de son parent.

Le résultat de cette substitution est un regroupement d’appareils unique, car tous les devnodes de l’arborescence ont le même ID de conteneur. Le périphérique USB\VID_1234&PID_5678 est interprété comme étant intégré à l’ordinateur.

Le diagramme suivant montre la topologie d’appareil obtenue et l’attribution d’ID de conteneur associée.

diagramme illustrant le remplacement de la fonctionnalité d’appareil amovible qui marque un devnode comme non amovible.

L’exemple précédent montre une topologie devnode fréquemment rencontrée : les ordinateurs portables avec des appareils câblés en dur à des emplacements de bus spécifiques qui se signalent incorrectement comme amovibles. Les appareils qui sont physiquement intégrés à un ordinateur, comme une webcam ou un capteur biométrique (empreinte digitale), ne doivent pas être signalés comme amovibles, car un utilisateur ne peut pas les séparer physiquement de l’ordinateur. La substitution amovible permet à un fournisseur de matériel indépendant (IHV) ou un fabricant d’équipement d’origine (OEM) de modifier la façon dont le gestionnaire PnP interprète la fonctionnalité de l’appareil amovible et affecte ainsi l’attribution de l’ID de conteneur pour l’appareil.

Exemple 2

Ce qui suit montre un remplacement de fonctionnalité d’appareil amovible pour tous les devnodes qui correspond à une valeur d’ID matériel spécifique.

Dans cet exemple, la substitution active la fonctionnalité d’appareil amovible, et la substitution est appliquée aux devnodes qui ont une valeur d’ID matériel USB\VID_062A&PID_0000.

Voici une description générale du format de table du Registre pour cette substitution.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceOverrides
    USB#VID_062A&PID_00001
        LocationPaths
            *
                Removable=1

1 Nom de la sous-clé de Registre HardwareID .

Dans cet exemple, le devnode avec un ID matériel d’USB\VID_1234&PID_5678 signale correctement la fonctionnalité amovible de l’appareil. Le gestionnaire PnP génère un ID de conteneur (ContainerID {B}) pour lui et tous ses devnodes enfants.

Toutefois, le devnode enfant avec un ID matériel USB\VID_062A&PID_0000 correspond au remplacement. Par conséquent, le gestionnaire PnP génère un autre ID contenu (ContainerID {C}) pour ce devnode et tous ses devnodes enfants.

Comme précédemment, ce remplacement modifie l’interprétation de la topologie d’appareil par le gestionnaire PnP. L’appareil physique se voit attribuer deux ID de conteneur et est considéré par Windows comme deux appareils. Notez que le devnode avec l’ID matériel usb\VID_062A&PID_0000 est interprété comme amovible lors du regroupement des devnodes en appareils. Cela ne modifie pas la valeur signalée par le devnode pour la fonctionnalité amovible de l’appareil.

En outre, la sous-clé de Registre * a été spécifiée pour indiquer que cette substitution doit être appliquée à tous les devnodes sur l’ordinateur qui ont l’ID matériel USB\VID_062A&PID_0000.

Le diagramme suivant montre la topologie d’appareil obtenue et l’attribution d’ID de conteneur associée.

diagramme illustrant le remplacement de la fonctionnalité d’appareil amovible qui marque un devnode comme amovible.