Condividi tramite


Enumerazione delle interfacce del dispositivo installate

Non è necessario enumerare le interfacce del dispositivo in un sistema accedendo direttamente alle chiavi del Registro di sistema. Come per qualsiasi chiave del Registro di sistema, il percorso, il nome o il formato della chiave possono cambiare tra versioni diverse di Windows.

Usare le linee guida seguenti per enumerare in modo sicuro le interfacce del dispositivo.

Le applicazioni in modalità utente devono seguire questa procedura:

  • Uso delle funzioni di Configuration Manager :

    Usare CM_Get_Device_Interface_List per recuperare un elenco di interfacce di dispositivo nell'oggetto InterfaceClassGuid specificato. Facoltativamente, puoi limitare l'elenco solo alle interfacce del dispositivo esposte da un determinato dispositivo impostando il parametro pDeviceID su un identificatore di istanza del dispositivo specifico.

    Per includere solo le interfacce di dispositivo presenti (abilitate) in un sistema, impostare il flag CM_GET_DEVICE_INTERFACE_LIST_PRESENT nel parametro ulFlags .

  • Uso delle funzioni SetupApi :

    1. Usare SetupDiGetClassDevs o SetupDiGetClassDevsEx con il flag DIGCF_DEVICEINTERFACE impostato nel parametro Flags per recuperare le interfacce del dispositivo per la classe di interfaccia del dispositivo specificata. Facoltativamente, è possibile limitare l'elenco solo alle interfacce del dispositivo esposte da un determinato dispositivo impostando il parametro Enumerator su un identificatore di istanza del dispositivo specifico.

      Per includere solo le interfacce di dispositivo presenti (abilitate) in un sistema, impostare il flag DIGCF_PRESENT nel parametro Flags .

    2. Usare SetupDiEnumDeviceInterfaces per enumerare le interfacce restituite dalle chiamate precedenti.

I driver in modalità kernel devono usare IoGetDeviceInterfaces per recuperare un elenco di interfacce di dispositivo nell'oggetto InterfaceClassGuid specificato. Facoltativamente, è possibile limitare l'elenco solo alle interfacce del dispositivo esposte da un determinato dispositivo impostando il parametro PhysicalDeviceObject .