Share via


Enumeración de interfaces de dispositivo instaladas

No debe enumerar las interfaces de dispositivo en un sistema accediendo directamente a las claves del 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.

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

Las aplicaciones en modo de usuario deben seguir estos pasos:

  • Uso de funciones de Configuration Manager :

    Use CM_Get_Device_Interface_List para recuperar una lista de interfaces de dispositivo en el InterfaceClassGuid especificado. Opcionalmente, puede restringir la lista a solo 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 interfaces de dispositivo presentes (habilitadas) en un sistema, establezca la marca CM_GET_DEVICE_INTERFACE_LIST_PRESENT en el parámetro ulFlags .

  • Uso de las funciones SetupApi :

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

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

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

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