Partager via


ID de conteneur générés à partir d'un remplacement de capacité de dispositif amovible

À compter de Windows 7, les nouveaux appareils doivent fournir un ID unique spécifique au bus (comme décrit dans Les 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é de périphérique amovible (comme décrit dans les ID de conteneur générés à partir de la fonctionnalité de périphérique 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 anciens qui signalent incorrectement la capacité 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 fonctionnalité 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é par le biais d’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 (devnode) le plus haut (parent) d’un appareil, le même ID de conteneur est hérité par chaque devnode enfant de l’appareil par le biais de l’heuristique décrite dans les 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 associées à des appareils spécifiques. Cette table de remplacement est conservée sous la clé de Registre DeviceOverrides et se compose des clés de Registre et des sous-clés de Registre suivantes.

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

1

DeviceOverrides

Clé parente pour toutes les substitutions de fonctionnalités d’appareil amovibles.

2

HardwareID

Spécifie l’ID matériel d’un appareil auquel la substitution de 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 les caractères numériques ('#').

2

CompatibleID

Spécifie l’ID compatible d’un appareil auquel la substitution de 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 les caractères numériques ('#').

3

LocationPaths

Spécifie que seul le chemin d’emplacement du nœud d’appareil parent de l’appareil (devnode) aura le remplacement de la fonctionnalité de dispositif amovible appliqué.

3

ChildLocationPaths

Spécifie que le chemin d'accès des nœuds enfants de l'appareil verra le remplacement de capacité d'appareil amovible appliqué.

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’accès d’emplacement discret du devnode auquel le remplacement de la fonctionnalité d’appareil amovible s’applique.

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

4

*

Spécifie que la capacité de dérogation pour les appareils amovibles 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 une surcharge d'appareil pour un devnode qui correspond à une sous-clé de registre HardwareID en plus d’un chemin d’accès spécifié via la sous-clé de registre LocationPaths.

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

Voici un exemple du format de la 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) le nom de la sous-clé de Registre LocationPath .

Cette dérogation modifie l’interprétation du gestionnaire Plug and Play (PnP) de la topologie de l’appareil. Notez que le devnode avec une valeur d’ID matériel de 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 ce remplacement est un regroupement unique de périphériques, 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 résultante et l’affectation d’ID de conteneur associée.

Diagramme illustrant la capacité d'outrepasser la fonctionnalité d'appareil amovible, identifiant 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 à des emplacements de bus spécifiques qui se signalent de manière incorrecte comme amovibles. Les appareils qui sont physiquement intégrés à un ordinateur, tels qu’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. Le remplacement amovible permet à un fournisseur de matériel indépendant (IHV) ou fabricant d’équipement d’origine (OEM) de modifier la façon dont le gestionnaire PnP interprète la fonctionnalité d’appareil amovible et affecte ainsi l’affectation de l’ID de conteneur pour l’appareil.

Exemple 2

L’exemple suivant montre une substitution de fonctionnalité d'appareil amovible pour tous les devnodes qui correspondent à une valeur spécifique d'identifiant matériel.

Dans cet exemple, la surcharge active la capacité de périphérique amovible, et la surcharge est appliquée aux devnodes dont la valeur d’ID matériel est USB\VID_062A&PID_0000.

Voici une description générale du format de table de Registre pour ce remplacement.

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 USB\VID_1234&PID_5678 signale correctement la capacité 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, cette substitution modifie l’interprétation du gestionnaire PnP de la topologie de l’appareil. L’appareil physique reçoit deux ID de conteneur et est vu par Windows comme deux appareils. Notez que le devnode avec l’ID matériel de USB\VID_062A&PID_0000 est interprété comme amovible dans le 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 ce remplacement doit être appliqué, sur l’ordinateur, à tous les devnodes qui possèdent l’ID matériel USB\VID_062A&PID_0000.

Le diagramme suivant montre la topologie d’appareil résultante et l’affectation d’ID de conteneur associée.

Diagramme illustrant la substitution de capacité des appareils amovibles, marquant ainsi un devnode comme amovible.