Freigeben über


SetupDiGetClassPropertyKeysExW-Funktion (setupapi.h)

Die SetupDiGetClassPropertyKeysEx-Funktion ruft ein Array der Geräteeigenschaftenschlüssel ab, die die Geräteeigenschaften darstellen, die für eine Geräteeinrichtungsklasse oder eine Geräteschnittstellenklasse auf einem lokalen oder Remotecomputer festgelegt sind.

Syntax

WINSETUPAPI BOOL SetupDiGetClassPropertyKeysExW(
  [in]            const GUID *ClassGuid,
  [out, optional] DEVPROPKEY *PropertyKeyArray,
  [in]            DWORD      PropertyKeyCount,
  [out, optional] PDWORD     RequiredPropertyKeyCount,
  [in]            DWORD      Flags,
  [in, optional]  PCWSTR     MachineName,
                  PVOID      Reserved
);

Parameter

[in] ClassGuid

Ein Zeiger auf eine GUID, die eine Geräteeinrichtungsklasse oder eine Geräteschnittstellenklasse darstellt. SetupDiGetClassPropertyKeysEx ruft ein Array der Geräteeigenschaftenschlüssel ab, die Geräteeigenschaften darstellen, die für die angegebene Klasse festgelegt sind. Informationen zum Angeben des Klassentyps finden Sie im Flags-Parameter .

[out, optional] PropertyKeyArray

Ein Zeiger auf einen Puffer, der ein Array von DEVPROPKEY-typisierten Werten empfängt, wobei jeder Wert ein Geräteeigenschaftenschlüssel ist, der eine Geräteeigenschaft darstellt, die für die Geräteeinrichtungsklasse festgelegt ist. Der Zeiger ist optional und kann NULL sein. Weitere Informationen finden Sie weiter unten in diesem Thema im Abschnitt Hinweise .

[in] PropertyKeyCount

Die Größe des PropertyKeyArray-Puffers in DEVPROPKEY-Typ-Werten. Wenn PropertyKeyArray auf NULL festgelegt ist, muss PropertyKeyCount auf 0 festgelegt werden.

[out, optional] RequiredPropertyKeyCount

Ein Zeiger auf eine DWORD-typisierte Variable, die die Anzahl der angeforderten Eigenschaftenschlüssel empfängt. Der Zeiger ist optional und kann auf NULL festgelegt werden.

[in] Flags

Einer der folgenden Werte, der angibt, ob Klasseneigenschaftenschlüssel für eine Geräteeinrichtungsklasse oder für eine Geräteschnittstellenklasse abgerufen werden sollen.

DICLASSPROP_INSTALLER

ClassGuid gibt eine Gerätesetupklasse an. Dieses Flag kann nicht mit DICLASSPROP_INTERFACE verwendet werden.

DICLASSPROP_INTERFACE

ClassGuid gibt eine Geräteschnittstellenklasse an. Dieses Flag kann nicht mit DICLASSPROP_INSTALLER verwendet werden.

[in, optional] MachineName

Ein Zeiger auf eine NULL-Zeichenfolge, die den UNC-Namen einschließlich des Präfixes "\" eines Computers enthält. Der Zeiger kann NULL sein. Wenn der Zeiger NULL ist, ruft SetupDiGetClassPropertyKeysEx die angeforderten Informationen vom lokalen Computer ab.

Achtung

Die Verwendung dieser Funktion für den Zugriff auf Remotecomputer wird ab Windows 8 und Windows Server 2012 nicht unterstützt, da diese Funktionalität entfernt wurde.

Reserved

Dieser Parameter muss auf NULL festgelegt werden.

Rückgabewert

SetupDiGetClassPropertyKeysEx gibt TRUE zurück, wenn es erfolgreich ist. Andernfalls wird FALSE zurückgegeben, und der protokollierte Fehler kann durch Aufrufen von GetLastError abgerufen werden.

Die folgende Tabelle enthält einige der häufigeren Fehlercodes, die diese Funktion möglicherweise protokolliert.

Rückgabecode Beschreibung
ERROR_INVALID_FLAGS
Der Wert von Flags ist ungültig.
ERROR_INVALID_CLASS
Wenn das DICLASSPROP_INSTALLER-Flag angegeben ist, gibt dieser Fehlercode an, dass die von ClassGuid angegebene Geräteeinrichtungsklasse nicht vorhanden ist.
ERROR_INVALID_REFERENCE_STRING
Die von ClassGuild angegebene Verweiszeichenfolge für die Geräteschnittstelle ist ungültig. Dieser Fehler kann zurückgegeben werden, wenn das DICLASSPROP_INTERFACE-Flag angegeben wird.
ERROR_INVALID_DATA
Ein nicht angegebener Datenwert ist ungültig. Eine Möglichkeit besteht darin, dass der ClassGuid-Wert ungültig ist.
ERROR_INVALID_PARAMETER
Ein nicht angegebener Parameter ist ungültig.
ERROR_INVALID_USER_BUFFER
Ein Benutzerpuffer ist ungültig. Eine Möglichkeit besteht darin, dass PropertyKeyArrayNULL und PropertKeyCount nicht 0 ist.
ERROR_INVALID_MACHINENAME
Der von MachineName angegebene Computername ist ungültig.
ERROR_NO_SUCH_INTERFACE_CLASS
Wenn das flag DICLASSPROP_INTERFACE angegeben ist, gibt dieser Fehlercode an, dass die geräteschnittstellenklasse, die von ClassGuid angegeben wird, nicht vorhanden ist.
ERROR_INSUFFICENT_BUFFER
Der PropertyKeyArray-Puffer ist nicht groß genug, um alle Eigenschaftenschlüssel aufzunehmen, oder ein interner Datenpuffer, der an einen Systemaufruf übergeben wurde, war zu klein.
ERROR_NOT_ENOUGH_MEMORY
Es war nicht genügend Systemspeicher verfügbar, um den Vorgang abzuschließen.
ERROR_ACCESS_DENIED
Der Aufrufer verfügt nicht über Administratorrechte.

Hinweise

SetupDiGetClassPropertyKeysEx ist Teil des einheitlichen Geräteeigenschaftenmodells.

Ein Aufrufer von SetupDiGetClassPropertyKeysEx muss Mitglied der Gruppe Administratoren sein, um Geräteeigenschaftenschlüssel für eine Geräteklasse abzurufen.

Wenn der PropertyKeyArray-Puffer nicht groß genug ist, um alle angeforderten Eigenschaftenschlüssel aufzunehmen, ruft SetupDiGetClassPropertyKeysEx keine Eigenschaftenschlüssel ab und gibt ERROR_INSUFFICIENT_BUFFER zurück. Wenn der Aufrufer einen RequiredPropertyKeyCount-Zeiger angegeben hat, legt SetupDiGetClassPropertyKeysEx den Wert von *RequiredPropertyKeyCount auf die erforderliche Größe in DEVPROPKEY-typisierten Werten des PropertyKeyArray-Puffers fest.

Um eine Geräteklasseneigenschaft auf einem Remotecomputer abzurufen, rufen Sie SetupDiGetClassPropertyEx auf, und um eine Geräteklasseneigenschaft auf einem Remotecomputer festzulegen, rufen Sie SetupDiSetClassPropertyEx auf.

Um die Eigenschaftenschlüssel für eine Geräteeinrichtungsklasse oder Geräteschnittstellenklasse auf einem lokalen Computer abzurufen, rufen Sie SetupDiGetClassPropertyKeys auf.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar in Windows Vista und späteren Windows-Versionen.
Zielplattform DesktopFür universal rufen Sie CM_Get_Class_Property_Keys_Ex auf
Kopfzeile setupapi.h (einschließlich Setupapi.h)
Bibliothek Setupapi.lib

Weitere Informationen

SetupDiGetClassPropertyEx

SetupDiGetClassPropertyKeys

SetupDiSetClassPropertyEx