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 |
---|---|
|
Der Wert von Flags ist ungültig. |
|
Wenn das DICLASSPROP_INSTALLER-Flag angegeben ist, gibt dieser Fehlercode an, dass die von ClassGuid angegebene Geräteeinrichtungsklasse nicht vorhanden ist. |
|
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. |
|
Ein nicht angegebener Datenwert ist ungültig. Eine Möglichkeit besteht darin, dass der ClassGuid-Wert ungültig ist. |
|
Ein nicht angegebener Parameter ist ungültig. |
|
Ein Benutzerpuffer ist ungültig. Eine Möglichkeit besteht darin, dass PropertyKeyArrayNULL und PropertKeyCount nicht 0 ist. |
|
Der von MachineName angegebene Computername ist ungültig. |
|
Wenn das flag DICLASSPROP_INTERFACE angegeben ist, gibt dieser Fehlercode an, dass die geräteschnittstellenklasse, die von ClassGuid angegeben wird, nicht vorhanden ist. |
|
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. |
|
Es war nicht genügend Systemspeicher verfügbar, um den Vorgang abzuschließen. |
|
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 |