Auflisten installierter Geräte
Sie sollten Geräte nicht direkt mithilfe von Registrierungsschlüsseln auflisten. Registrierungsschlüssel enthalten nicht die erforderlichen Informationen, um installierte Geräte auf dem System aufzulisten. Diese Informationen, z. B. ob das Gerät tatsächlich vorhanden ist oder ein Phantomgerät (eines, das nicht angeschlossen ist), werden vom Plug & Play-Manager (PnP) gespeichert. Der PnP-Manager führt auch eine zusätzliche Filterung von Registrierungsinformationen durch.
Führen Sie die folgenden Schritte aus, um installierte Geräte sicher aufzulisten.
Verwenden von Configuration Manager-Funktionen :
Verwenden Sie CM_Get_Device_ID_List, um eine Liste mit eindeutigen Zeichenfolgen für geräte- instance-Bezeichner (ID) abzurufen. Um Informationen nur für Geräte abzurufen, die im System vorhanden sind, legen Sie CM_GETIDLIST_FILTER_PRESENT im ulFlags-Parameter fest.
Sie können die eindeutige Geräte-instance-ID mit CM_Locate_DevNode verwenden, um ein DEVINST-Objekt abzurufen, das das Gerät darstellt, das mit anderen Configuration Manager-APIs verwendet werden soll.
Verwenden von SetupAPI-Funktionen :
Verwenden Sie SetupDiGetClassDevs , um Informationen für eine Gruppe von Geräten abzurufen. Um Informationen nur für Geräte abzurufen, die im System vorhanden sind, legen Sie im Flags-Parameter DIGCF_PRESENT fest.
Verwenden Sie SetupDiEnumDeviceInfo , um die Geräte in der Gruppe aufzulisten.
Sie können die von SetupDiEnumDeviceInfo zurückgegebeneSP_DEVINFO_DATA mit anderen SetupApi-APIs verwenden oder SetupDiGetDeviceInstanceId verwenden, um ein eindeutiges Gerät instance Id (ID) für das Gerät abzurufen.