Aufzählen installierter Geräteschnittstellen

Sie dürfen die Geräteschnittstellen in einem System nicht auflisten, indem Sie direkt auf Registrierungsschlüssel zugreifen. Wie bei jedem Registrierungsschlüssel kann sich der Speicherort, der Name oder das Format des Schlüssels zwischen verschiedenen Versionen von Windows ändern.

Verwenden Sie die folgenden Richtlinien, um Geräteschnittstellen sicher auflisten zu können.

Benutzermodusanwendungen sollten die folgenden Schritte ausführen:

  • Verwenden von Configuration Manager-Funktionen :

    Verwenden Sie CM_Get_Device_Interface_List , um eine Liste der Geräteschnittstellen in der angegebenen InterfaceClassGuid abzurufen. Sie können die Liste optional auf Geräteschnittstellen beschränken, die von einem bestimmten Gerät verfügbar gemacht werden, indem Sie den Parameter pDeviceID auf einen bestimmten Geräteinstanzbezeichner festlegen.

    Um nur Geräteschnittstellen einzuschließen, die in einem System vorhanden (aktiviert) sind, legen Sie das CM_GET_DEVICE_INTERFACE_LIST_PRESENT Flag im ulFlags-Parameter fest.

  • Verwendung von SetupApi-Funktionen:

    1. Verwenden Sie SetupDiGetClassDevs oder SetupDiGetClassDevsEx mit dem im Parameter Flags festgelegten Flag DIGCF_DEVICEINTERFACE, um die Geräteschnittstellen für die angegebene Geräteschnittstellenklasse abzurufen. Sie können die Liste optional auf Geräteschnittstellen beschränken, die von einem bestimmten Gerät verfügbar gemacht werden, indem Sie den Enumerator-Parameter auf einen bestimmten Geräteinstanzbezeichner festlegen.

      Um nur Geräteschnittstellen einzuschließen, die in einem System vorhanden (aktiviert) sind, legen Sie das Flag DIGCF_PRESENT im Parameter Flags fest.

    2. Verwenden Sie SetupDiEnumDeviceInterfaces zum Aufzählen von Schnittstellen, die von den obigen Aufrufen zurückgegeben werden.

Kernelmodustreiber sollten IoGetDeviceInterfaces verwenden, um eine Liste der Geräteschnittstellen für die angegebene InterfaceClassGuid abzurufen. Sie können die Liste optional auf nur die Geräteschnittstellen beschränken, die von einem bestimmten Gerät verfügbar gemacht werden, indem Sie den Parameter PhysicalDeviceObject festlegen.