SetupDiGetClassPropertyW-Funktion (setupapi.h)
Die SetupDiGetClassProperty-Funktion ruft eine Geräteeigenschaft ab, die für eine Geräteeinrichtungsklasse oder eine Geräteschnittstellenklasse festgelegt ist.
Syntax
WINSETUPAPI BOOL SetupDiGetClassPropertyW(
[in] const GUID *ClassGuid,
[in] const DEVPROPKEY *PropertyKey,
[out] DEVPROPTYPE *PropertyType,
[out] PBYTE PropertyBuffer,
[in] DWORD PropertyBufferSize,
[out, optional] PDWORD RequiredSize,
[in] DWORD Flags
);
Parameter
[in] ClassGuid
Ein Zeiger auf eine GUID, die die Geräteeinrichtungsklasse oder Geräteschnittstellenklasse identifiziert, für die eine Geräteeigenschaft abgerufen werden soll, die für die Geräteklasse festgelegt ist. Informationen zum Angeben des Klassentyps finden Sie im Flags-Parameter .
[in] PropertyKey
Ein Zeiger auf eine DEVPROPKEY-Struktur , die den Geräteeigenschaftenschlüssel der angeforderten Geräteklasseneigenschaft darstellt.
[out] PropertyType
Ein Zeiger auf eine DEVPROPTYPE-typisierte Variable, die den Eigenschaftsdatentypbezeichner der angeforderten Geräteklasseneigenschaft empfängt, wobei der Eigenschaft-Datentypbezeichner der bitweise OR zwischen einem Basisdatentypbezeichner und, wenn der Basisdatentyp geändert wird, einem Eigenschaft-Data-Type-Modifizierer ist.
[out] PropertyBuffer
Ein Zeiger auf einen Puffer, der die angeforderte Geräteklasseneigenschaft empfängt. SetupDiGetClassProperty ruft den angeforderten Eigenschaftswert nur ab, wenn der Puffer groß genug ist, um alle Eigenschaftenwertdaten aufzunehmen. Der Zeiger kann NULL sein. Wenn der Zeiger auf NULL festgelegt ist und RequiredSize angegeben wird, gibt SetupDiGetClassProperty die Größe der Geräteklasseneigenschaft in Bytes in *RequiredSize zurück.
[in] PropertyBufferSize
Die Größe des PropertyBuffer-Puffers in Bytes. Wenn PropertyBuffer auf NULL festgelegt ist, muss PropertyBufferSize auf 0 festgelegt werden.
[out, optional] RequiredSize
Ein Zeiger auf eine DWORD-typisierte Variable, die entweder die Größe der Geräteklasseneigenschaft in Bytes empfängt, wenn die Geräteklasseneigenschaft abgerufen wird, oder die erforderliche Puffergröße, wenn der Puffer nicht groß genug ist. Dieser Zeiger kann auf NULL festgelegt werden.
[in] Flags
Einer der folgenden Werte, der angibt, ob es sich bei der Klasse um eine Geräteeinrichtungsklasse oder eine Geräteschnittstellenklasse handelt.
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
SetupDiGetClassProperty 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 nicht 0. |
|
Die von ClassGuid angegebene Geräteeinrichtungsklasse ist ungültig. Dieser Fehler kann nur auftreten, wenn das DICLASSPROP_INSTALLER-Flag angegeben ist. |
|
Ein nicht angegebener Parameter ist ungültig. |
|
Der von PropertyKey bereitgestellte Eigenschaftenschlüssel ist ungültig. |
|
Die Referenzzeichenfolge der Geräteschnittstelle ist ungültig. Dieser Fehler kann zurückgegeben werden, wenn das flag DICLASSPROP_INTERFACE angegeben ist. |
|
Ein nicht angegebener interner Datenwert war ungültig. |
|
Ein Benutzerpuffer ist ungültig. Eine Möglichkeit besteht darin, dass PropertyBufferNULL und PropertyBufferSize nicht 0 ist. |
|
Die von ClassGuid angegebene Geräteschnittstellenklasse ist nicht vorhanden. Dieser Fehler kann nur auftreten, wenn das flag DICLASSPROP_INTERFACE angegeben ist. |
|
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. |
|
Die angeforderte Geräteeigenschaft ist nicht vorhanden. |
|
Der Aufrufer verfügt nicht über Administratorrechte. |
Hinweise
SetupDiGetClassProperty ist Teil des einheitlichen Geräteeigenschaftenmodells.
SetupAPI unterstützt nur eine Unicode-Version von SetupDiGetClassProperty.
Ein Aufrufer von SetupDiGetClassProperty muss Mitglied der Gruppe Administratoren sein, um eine Geräteschnittstelleneigenschaft festzulegen.
Rufen Sie SetupDiGetClassPropertyKeys auf, um die Geräteeigenschaften abzurufen, die für eine Geräteklasse auf einem lokalen Computer festgelegt sind.
Um eine Geräteklasseneigenschaft auf einem Remotecomputer abzurufen, rufen Sie SetupDiGetClassPropertyEx auf.
Um eine Geräteklasseneigenschaft auf einem lokalen Computer festzulegen, rufen Sie SetupDiSetClassProperty auf, und um eine Geräteklasseneigenschaft auf einem Remotecomputer festzulegen, rufen Sie SetupDiSetClassPropertyEx 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 auf |
Kopfzeile | setupapi.h (einschließlich Setupapi.h) |
Bibliothek | Setupapi.lib |