SetupDiGetClassPropertyKeys-Funktion (setupapi.h)

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

Syntax

WINSETUPAPI BOOL SetupDiGetClassPropertyKeys(
  [in]            const GUID *ClassGuid,
  [out, optional] DEVPROPKEY *PropertyKeyArray,
  [in]            DWORD      PropertyKeyCount,
  [out, optional] PDWORD     RequiredPropertyKeyCount,
  [in]            DWORD      Flags
);

Parameter

[in] ClassGuid

Ein Zeiger auf eine GUID, die eine Geräteeinrichtungsklasse oder eine Geräteschnittstellenklasse darstellt. SetupDiGetClassPropertyKeys 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äteklasse 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-typisierten 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 Parameter ist optional und kann auf NULL festgelegt werden.

[in] Flags

Einer der folgenden Werte, der angibt, ob Eigenschaftenschlü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.

Rückgabewert

SetupDiGetClassPropertyKeys 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 flag DICLASSPROP_INTERFACE angegeben ist.
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_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

SetupDiGetClassPropertyKeys ist Teil des einheitlichen Geräteeigenschaftenmodells.

Ein Aufrufer von SetupDiGetClassPropertyKeys 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 SetupDiGetClassPropertyKeys keine Eigenschaftenschlüssel ab und gibt ERROR_INSUFFICIENT_BUFFER zurück. Wenn der Aufrufer einen RequiredPropertyKeyCount-Zeiger angegeben hat, legt SetupDiGetClassPropertyKeys den Wert von *RequiredPropertyKeyCount auf die erforderliche Größe in DEVPROPKEY-typisierten Werten des PropertyKeyArray-Puffers fest.

Um eine Geräteklasseneigenschaft auf einem lokalen Computer abzurufen, rufen Sie SetupDiGetClassProperty auf. Um eine Geräteklasseneigenschaft auf einem lokalen Computer festzulegen, rufen Sie SetupDiSetClassProperty auf.

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

Anforderungen

   
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 auf
Kopfzeile setupapi.h (einschließlich Setupapi.h)
Bibliothek Setupapi.lib
DLL Setupapi.dll

Weitere Informationen

SetupDiGetClassProperty

SetupDiGetClassPropertyKeysEx

SetupDiSetClassProperty