Énumération des interfaces d’appareil installées
Vous ne devez pas énumérer les interfaces d’appareil dans un système en accédant directement aux clés de Registre. Comme pour n’importe quelle clé de Registre, l’emplacement, le nom ou le format de la clé peut changer d’une version à l’autre de Windows.
Utilisez les instructions suivantes pour énumérer en toute sécurité les interfaces d’appareil.
Les applications en mode utilisateur doivent suivre les étapes suivantes :
Utilisation des fonctions du gestionnaire de configuration :
Utilisez CM_Get_Device_Interface_List pour récupérer une liste d’interfaces d’appareil dans l’InterfaceClassGuid spécifié. Vous pouvez éventuellement restreindre la liste aux seules interfaces d’appareil exposées par un appareil particulier en définissant le paramètre pDeviceID sur un identificateur de instance d’appareil spécifique.
Pour inclure uniquement les interfaces d’appareil présentes (activées) dans un système, définissez l’indicateur CM_GET_DEVICE_INTERFACE_LIST_PRESENT dans le paramètre ulFlags .
Utilisation des fonctions SetupApi :
Utilisez SetupDiGetClassDevs ou SetupDiGetClassDevsEx avec l’indicateur DIGCF_DEVICEINTERFACE défini dans le paramètre Flags pour récupérer les interfaces d’appareil pour la classe d’interface d’appareil spécifiée. Vous pouvez éventuellement restreindre la liste aux seules interfaces d’appareil exposées par un appareil particulier en définissant le paramètre Énumérateur sur un identificateur de instance d’appareil spécifique.
Pour inclure uniquement les interfaces d’appareil présentes (activées) dans un système, définissez l’indicateur DIGCF_PRESENT dans le paramètre Flags .
Utilisez SetupDiEnumDeviceInterfaces pour énumérer les interfaces retournées par les appels ci-dessus.
Les pilotes en mode noyau doivent utiliser IoGetDeviceInterfaces pour récupérer une liste d’interfaces d’appareil dans l’InterfaceClassGuid spécifié. Vous pouvez éventuellement restreindre la liste aux seules interfaces d’appareil exposées par un appareil particulier en définissant le paramètre PhysicalDeviceObject .