Enumerar dispositivos instalados
No debe enumerar los dispositivos mediante claves del Registro directamente. Las claves del Registro no contienen la información necesaria para enumerar los dispositivos instalados en el sistema. Esta información, como si el dispositivo está presente realmente o es un dispositivo fantasma (uno que no está conectado), es mantenido por el administrador de Plug and Play (PnP). El administrador de PnP también realiza un filtrado adicional de la información del Registro.
Para enumerar los dispositivos instalados de forma segura, siga estos pasos.
Uso de funciones de Configuration Manager :
Use CM_Get_Device_ID_List para recuperar una lista de cadenas únicas de identificador de instancia de dispositivo (ID). Para recuperar información solo para los dispositivos que están presentes en el sistema, establezca CM_GETIDLIST_FILTER_PRESENT en el parámetro ulFlags .
Puede usar el identificador de instancia de dispositivo único con CM_Locate_DevNode para recuperar un DEVINST que represente el dispositivo para usarlo con otras API de Configuration Manager.
Uso de las funciones setupAPI :
Use SetupDiGetClassDevs para recuperar información de un conjunto de dispositivos. Para recuperar información solo para los dispositivos que están presentes en el sistema, establezca DIGCF_PRESENT en el parámetro Flags .
Use SetupDiEnumDeviceInfo para enumerar los dispositivos del conjunto.
Puede usar la SP_DEVINFO_DATA devuelta por SetupDiEnumDeviceInfo con otras API setupApi o usar SetupDiGetDeviceInstanceId para recuperar un identificador de instancia de dispositivo (ID) único para el dispositivo.