Freigeben über


Auflisten installierter Geräteschnittstellen

Sie dürfen die Geräteschnittstellen in einem System nicht durch direkten Zugriff auf Registrierungsschlüssel auflisten. 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 aufzulisten.

Anwendungen im Benutzermodus 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 pDeviceID-Parameter auf einen bestimmten Geräte instance bezeichner festlegen.

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

  • Verwenden von SetupApi-Funktionen :

    1. Verwenden Sie SetupDiGetClassDevs oder SetupDiGetClassDevsEx mit dem im Flags-Parameter festgelegten DIGCF_DEVICEINTERFACE-Flag, 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äte-instance-Bezeichner festlegen.

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

    2. Verwenden Sie SetupDiEnumDeviceInterfaces , um schnittstellen aufzulisten, die von den oben genannten Aufrufen zurückgegeben werden.

Kernelmodustreiber sollten IoGetDeviceInterfaces verwenden, um eine Liste von 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 PhysicalDeviceObject festlegen.