SetupDiSetClassPropertyW-Funktion (setupapi.h)

Die SetupDiSetClassProperty-Funktion legt eine Klasseneigenschaft für eine Geräteeinrichtungsklasse oder eine Geräteschnittstellenklasse fest.

Syntax

WINSETUPAPI BOOL SetupDiSetClassPropertyW(
  [in]           const GUID       *ClassGuid,
  [in]           const DEVPROPKEY *PropertyKey,
  [in]           DEVPROPTYPE      PropertyType,
  [in, optional] const PBYTE      PropertyBuffer,
  [in]           DWORD            PropertyBufferSize,
  [in]           DWORD            Flags
);

Parameter

[in] ClassGuid

Ein Zeiger auf eine GUID, die die Gerätesetupklasse oder Geräteschnittstellenklasse identifiziert, für die eine Geräteeigenschaft festgelegt werden soll. Informationen zum Angeben des Klassentyps finden Sie im Flags-Parameter .

[in] PropertyKey

Ein Zeiger auf eine DEVPROPKEY-Struktur , die den Geräteeigenschaftsschlüssel der festzulegenden Geräteklasseneigenschaft darstellt.

[in] PropertyType

Ein DEVPROPTYPE-typisierter Wert, der den Property-Data-Type-Bezeichner für die Geräteklasseneigenschaft darstellt. Weitere Informationen zum Eigenschaftendatentypbezeichner finden Sie weiter unten in diesem Thema im Abschnitt Hinweise .

[in, optional] PropertyBuffer

Ein Zeiger auf einen Puffer, der den Eigenschaftswert der Geräteklasse enthält. Wenn entweder die Eigenschaft oder die Daten gelöscht werden, muss dieser Zeiger auf NULL und PropertyBufferSize auf Null festgelegt werden. Weitere Informationen zu Eigenschaftendaten finden Sie im Abschnitt Hinweise weiter unten in diesem Thema.

[in] PropertyBufferSize

Die Größe des PropertyBuffer-Puffers in Bytes. Wenn PropertyBuffer auf NULL festgelegt ist, muss PropertyBufferSize auf Null festgelegt werden.

[in] Flags

Einer der folgenden Werte, der angibt, ob die Klasse eine Gerätesetupklasse oder eine Geräteschnittstellenklasse ist:

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

SetupDiSetClassProperty 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
Die von ClassGuid angegebene Gerätesetupklasse ist ungültig. Dieser Fehler kann nur auftreten, wenn das flag DICLASSPROP_INSTALLER angegeben ist.
ERROR_INVALID_REFERENCE_STRING
Die Referenzzeichenfolge der Geräteschnittstelle ist ungültig. Dieser Fehler kann nur auftreten, wenn das flag DICLASSPROP_INTERFACE angegeben ist.
ERROR_INVALID_REG_PROPERTY
Der von PropertyKey bereitgestellte Eigenschaftenschlüssel ist ungültig.
ERROR_INVALID_DATA
Ein nicht angegebener interner Datenwert war ungültig. Dieser Fehler kann protokolliert werden, wenn der ClassGuid-Wert keine gültige GUID ist oder der Eigenschaftswert nicht mit dem durch PropertyType angegebenen Eigenschaftentyp konsistent ist.
ERROR_INVALID_USER_BUFFER
Ein Benutzerpuffer ist ungültig. Eine Möglichkeit besteht darin, dass PropertyBufferNULL und PropertyBufferSize nicht null ist.
ERROR_NO_SUCH_INTERFACE_CLASS
Die von ClassGuid angegebene Geräteschnittstellenklasse ist nicht vorhanden. Dieser Fehler kann nur auftreten, wenn das flag DICLASSPROP_INTERFACE angegeben ist.
ERROR_INSUFFICIENT_BUFFER
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_NOT_FOUND
Ein nicht angegebenes Element wurde nicht gefunden. Eine Möglichkeit besteht darin, dass die zu löschende Eigenschaft nicht vorhanden ist.
ERROR_ACCESS_DENIED
Der Aufrufer verfügt nicht über Administratorrechte.

Hinweise

SetupDiSetClassProperty ist Teil des einheitlichen Geräteeigenschaftenmodells.

SetupAPI unterstützt nur eine Unicode-Version von SetupDiSetClassProperty.

Ein Aufrufer von SetupDiSetClassProperty muss Mitglied der Gruppe Administratoren sein, um eine Geräteschnittstelleneigenschaft festzulegen.

SetupDiSetClassProperty erzwingt Anforderungen für den Property-Data-Type-Bezeichner und den Eigenschaftswert.

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 lokalen Computer abzurufen, rufen Sie SetupDiGetClassProperty auf, und um eine Geräteklasseneigenschaft auf einem Remotecomputer abzurufen, rufen Sie SetupDiGetClassPropertyEx auf.

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_Set_Class_Property auf.
Kopfzeile setupapi.h (schließen Sie Setupapi.h ein)
Bibliothek Setupapi.lib

Weitere Informationen

SetupDiGetClassProperty

SetupDiGetClassPropertyEx

SetupDiGetClassPropertyKeys

SetupDiSetClassPropertyEx