Énumérer les appareils installés
Vous ne devez pas énumérer d’appareils directement à l’aide de clés de Registre. Les clés de Registre ne contiennent pas les informations requises pour énumérer les appareils installés sur le système. Ces informations, telles que si l’appareil est réellement présent ou s’il s’agit d’un appareil fantôme (un appareil qui n’est pas branché), sont conservées par le gestionnaire de Plug-and-Play (PnP). Le gestionnaire PnP effectue également un filtrage supplémentaire des informations du Registre.
Pour énumérer les appareils installés en toute sécurité, procédez comme suit.
Utilisation des fonctions du gestionnaire de configuration :
Utilisez CM_Get_Device_ID_List pour récupérer une liste de chaînes d’identificateur (ID) de instance d’appareil uniques. Pour récupérer des informations uniquement pour les appareils présents dans le système, définissez CM_GETIDLIST_FILTER_PRESENT dans le paramètre ulFlags .
Vous pouvez utiliser l’ID de instance d’appareil unique avec CM_Locate_DevNode pour récupérer un DEVINST qui représente l’appareil à utiliser avec d’autres API du gestionnaire de configuration.
Utilisation des fonctions SetupAPI :
Utilisez SetupDiGetClassDevs pour récupérer des informations sur un ensemble d’appareils. Pour récupérer des informations uniquement pour les appareils présents dans le système, définissez DIGCF_PRESENT dans le paramètre Flags .
Utilisez SetupDiEnumDeviceInfo pour énumérer les appareils dans l’ensemble.
Vous pouvez utiliser le SP_DEVINFO_DATA retourné par SetupDiEnumDeviceInfo avec d’autres API SetupApi ou utiliser SetupDiGetDeviceInstanceId pour récupérer un identificateur de instance d’appareil unique (ID) pour l’appareil.