Partager via


Récupération des relations avec les appareils

Dans Windows Vista et les versions ultérieures de Windows, le modèle de propriété d’appareil unifié inclut les propriétés de relations d’appareil. Le modèle de propriété d’appareil unifié utilise des clés de propriété pour représenter ces propriétés. La liste des relations représentées dans le modèle de propriété d’appareil unifié est la suivante :

Windows Server 2003, Windows XP et Windows 2000 ne prennent pas en charge les clés de propriété du modèle de propriété unifié. Toutefois, vous pouvez récupérer les informations correspondantes en appelant Plug-and-Play fonctions du gestionnaire de configuration (PnP). Pour maintenir la compatibilité avec les versions antérieures de Windows, Windows Vista et les versions ultérieures prennent également en charge l’appel des fonctions du gestionnaire de configuration PnP pour récupérer les propriétés des relations d’appareil. Toutefois, vous devez utiliser les clés de propriété du modèle de propriété d’appareil unifié pour accéder aux propriétés de relation d’appareil. Pour plus d’informations sur l’utilisation des clés de propriété pour accéder aux propriétés du pilote de périphérique, consultez Access Device Instance Properties (Windows Vista et versions ultérieures) .

Pour plus d’informations sur l’accès aux propriétés de relations d’appareil sur Windows Server 2003, Windows XP et Windows 2000, consultez les rubriques suivantes :

Récupération des relations d’éjection, des relations de suppression et des relations de puissance, et des relations de bus

Récupération du parent d’une instance d’appareil

Récupération des enfants d’une instance d’appareil

Récupération des frères d’une instance d’appareil

Récupération des relations d’éjection, des relations de suppression et des relations de puissance, et des relations de bus

Pour récupérer des informations sur les relations des appareils sur Windows Server 2003, Windows XP et Windows 2000, appelez CM_Get_Device_ID_List et fournissez les valeurs de paramètre suivantes :

  • Définissez pszFilter sur un pointeur vers une chaîne terminée par NULL qui spécifie l’identificateur de instance d’appareil pour lequel récupérer des informations de relations.

  • Définissez Buffer sur un pointeur vers une mémoire tampon qui reçoit une liste d’identificateurs d’appareil null instance. La liste est terminée par un caractère NULL supplémentaire. Vous pouvez obtenir la taille de mémoire tampon requise en appelant la fonction CM_Get_Device_ID_List_Size .

  • Définissez BufferLen sur la taille, en caractères, de la mémoire tampon .

  • Définissez ulFlags sur l’un des indicateurs suivants pour récupérer les informations de relations correspondantes :

Si l’appel à CM_Get_Device_ID_List réussit, CM_Get_Device_ID_List récupère les informations de relations demandées et retourne CR_SUCCESS. Sinon, CM_Get_Device_ID_List retourne l’un des codes d’erreur avec le préfixe « CR_ » qui sont définis dans Cfgmgr32.h.

Récupération du parent d’une instance d’appareil

Pour récupérer l’identificateur de instance d’un appareil parent sur Windows Server 2003, Windows XP et Windows 2000, procédez comme suit :

  1. Appelez la fonction CM_Get_Parent pour récupérer un appareil instance gérer sur l’appareil parent d’un instance d’appareil.

  2. Appelez CM_Get_Device_ID pour récupérer l’identificateur de instance d’appareil associé à l’appareil instance gérer sur l’appareil parent qui a été récupéré par l’appel précédent à CM_Get_Parent.

Ces informations récupérées à l’aide de cette procédure sont les mêmes que celles représentées par la propriété DEVPKEY_Device_Parent dans le modèle de propriété d’appareil unifié de Windows Vista et des versions ultérieures.

Récupération des enfants d’une instance d’appareil

Pour récupérer les identificateurs de instance d’appareil des appareils enfants d’un appareil instance sur Windows Server 2003, Windows XP et Windows 2000, procédez comme suit :

  1. Appelez la fonction CM_Get_Child pour récupérer un périphérique instance handle sur le premier appareil enfant associé à un instance d’appareil.

  2. Appelez CM_Get_Sibling autant de fois qu’il est nécessaire d’énumérer tous les appareils frères du premier appareil enfant récupéré par l’appel à CM_Get_Child.

  3. Appelez CM_Get_Device_ID pour récupérer les identificateurs de instance d’appareil associés aux handles instance de l’appareil qui ont été retournés par les appels à CM_Get_Child et CM_Get_Sibling.

Ces informations récupérées à l’aide de cette procédure sont les mêmes que celles représentées par la propriété DEVPKEY_Device_Children dans le modèle de propriété d’appareil unifié de Windows Vista et des versions ultérieures.

Récupération des frères d’une instance d’appareil

Pour récupérer les identificateurs de instance d’appareil des appareils frères de l’appareil instance Abc sur Windows Server 2003, Windows XP et Windows 2000, procédez comme suit :

  1. Appelez la fonction CM_Get_Parent pour récupérer un appareil instance gérer sur l’appareil parent de l’appareil instance Abc.

  2. Appelez la fonction CM_Get_Child pour récupérer un appareil instance gérer sur le premier appareil enfant de l’appareil parent de l’appareil instance Abc.

  3. Appelez CM_Get_Sibling autant de fois que nécessaire pour énumérer tous les appareils frères du premier appareil enfant de l’appareil parent. Cette énumération retourne également un handle à l’appareil instance Abc.

  4. Appelez CM_Get_Device_ID pour récupérer les identificateurs de instance d’appareil associés aux handles instance de l’appareil qui ont été retournés par les appels précédents à CM_Get_Sibling. Supprimez le handle de l’appareil instance Abc de la liste des appareils frères du premier appareil enfant de l’appareil parent.

Les informations récupérées à l’aide de cette procédure sont les mêmes que celles représentées par la propriété DEVPKEY_Device_Siblings dans le modèle de propriété d’appareil unifié de Windows Vista et des versions ultérieures. Si un appel de fonction CM_Xxx répertorié dans cette section réussit, la fonction CM_Xxx récupère les informations demandées et retourne CR_SUCCESS. Sinon, la fonction CM_Xxx retourne l’un des codes d’erreur avec le préfixe « CR_ » qui sont définis dans Cfgmgr32.h.