Enumerando las interfaces de dispositivo instaladas

No debe enumerar las interfaces de dispositivo de un sistema accediendo directamente a las claves de registro. Al igual que con cualquier clave del Registro, la ubicación, el nombre o el formato de la clave pueden cambiar entre diferentes versiones de Windows.

Utilice las instrucciones siguientes para enumerar interfaces de dispositivo de forma segura.

Las aplicaciones en modo de usuario deben seguir estos pasos:

  • Uso de las funciones de Configuration Manager:

    Utilice CM_Get_Device_Interface_List para recuperar una lista de las interfaces de dispositivo del InterfaceClassGuid especificado. Opcionalmente, puede restringir la lista solo a interfaces de dispositivo expuestas por un dispositivo determinado estableciendo el parámetro pDeviceID en un identificador de instancia de dispositivo específico.

    Para incluir solo las interfaces de dispositivo presentes (habilitadas) en un sistema, establezca el indicador CM_GET_DEVICE_INTERFACE_LIST_PRESENT en el parámetro ulFlags.

  • Uso de las funciones de SetupApi:

    1. Utilice SetupDiGetClassDevs o SetupDiGetClassDevsEx con el indicador DIGCF_DEVICEINTERFACE establecido en el parámetro Flags para recuperar las interfaces de dispositivo de la clase de interfaz de dispositivo especificada. Opcionalmente, puede restringir la lista solo a interfaces de dispositivo expuestas por un dispositivo determinado estableciendo el parámetro Enumerator en un identificador de instancia de dispositivo específico.

      Para incluir solo interfaces de dispositivo presentes (habilitadas) en un sistema, establezca la marca DIGCF_PRESENT en el parámetro Flags.

    2. Utilice SetupDiEnumDeviceInterfaces para enumerar las interfaces devueltas por las llamadas anteriores.

Los controladores en modo kernel deben utilizar IoGetDeviceInterfaces para recuperar una lista de las interfaces de dispositivo del InterfaceClassGuid especificado. Opcionalmente, puede restringir la lista solo a interfaces de dispositivo expuestas por un dispositivo determinado estableciendo el parámetro PhysicalDeviceObject .