PutClassWmi-Funktion
Erstellt eine neue Klasse oder aktualisiert eine vorhandene Klasse.
Hinweis
Diese API ist ausschließlich für die interne Verwendung vorgesehen. Sie ist nicht für die Verwendung im Entwicklercode vorgesehen.
Syntax
HRESULT PutClassWmi (
[in] IWbemClassObject* pObject,
[in] long lFlags,
[in] IWbemContext* pCtx,
[out] IWbemCallResult** ppCallResult
);
Parameter
pObject
[in] Ein Zeiger auf eine gültige Klassendefinition. Muss ordnungsgemäß mit allen erforderlichen Eigenschaftswerten initialisiert werden.
lFlags
[in] Eine Kombination von Flags, die das Verhalten dieser Funktion beeinflussen. Die folgenden Werte werden in der WbemCli.h-Headerdatei definiert, oder Sie können sie als Konstanten im Code definieren:
Konstante | Wert | BESCHREIBUNG |
---|---|---|
WBEM_FLAG_USE_AMENDED_QUALIFIERS |
0x20000 | Wenn festgelegt, speichert WMI keine Qualifizierer mit der geänderten Variante. Wenn nicht festgelegt, wird davon ausgegangen, dass dieses Objekt nicht lokalisiert ist, und alle Qualifizierer werden mit dieser Instanz gespeichert. |
WBEM_FLAG_CREATE_OR_UPDATE |
0 | Erstellen Sie die Klasse, wenn sie nicht vorhanden ist, oder überschreiben Sie sie, wenn sie bereits vorhanden ist. |
WBEM_FLAG_UPDATE_ONLY |
1 | Aktualisieren der Klasse. Die Klasse muss vorhanden sein, damit der Aufruf erfolgreich ist. |
WBEM_FLAG_CREATE_ONLY |
2 | Erstellen der Klasse. Der Aufruf schlägt fehl, wenn die Klasse bereits vorhanden ist. |
WBEM_FLAG_RETURN_IMMEDIATELY |
0x10 | Das Flag verursacht einen halbsynchronen Aufruf. |
WBEM_FLAG_OWNER_UPDATE |
0x10000 | Pushanbieter müssen dieses Flag beim Aufrufen von PutClassWmi angeben, um anzuzeigen, dass sich diese Klasse geändert hat. |
WBEM_FLAG_UPDATE_COMPATIBLE |
0 | Ermöglicht das Aktualisieren einer Klasse, wenn keine abgeleiteten Klassen und keine Instanzen dieser Klasse vorhanden sind. Es ermöglicht außerdem Aktualisierungen in allen Fällen, wenn die Änderung nur an unwichtigen Qualifizierern wie dem Beschreibungsqualifizierer vorgenommen wird. Wenn die Klasse über Instanzen verfügt oder Änderungen an wichtigen Qualifizierern vorgenommen werden, schlägt die Aktualisierung fehl. |
WBEM_FLAG_UPDATE_SAFE_MODE |
0x20 | Ermöglicht Aktualisierungen von Klassen auch dann, wenn untergeordnete Klassen vorhanden sind, solange die Änderung keine Konflikte mit untergeordneten Klassen verursacht. Mit diesem Flag kann z. B. der Basisklasse eine neue Eigenschaft hinzugefügt werden, die zuvor in keiner der untergeordneten Klassen erwähnt wurde. Wenn die Klasse über Instanzen verfügt, schlägt die Aktualisierung fehl. |
WBEM_FLAG_UPDATE_FORCE_MODE |
0x40 | Erzwingt Aktualisierungen von Klassen, wenn in Konflikt stehende untergeordnete Klassen vorhanden sind. Beispielsweise erzwingt dieses Flag eine Aktualisierung, wenn ein Klassenqualifizierer in einer untergeordneten Klasse definiert ist, und die Basisklasse versucht, denselben Qualifizierer hinzuzufügen, der mit dem vorhandenen in Konflikt steht. Im Erzwingungsmodus wird dieser Konflikt gelöst, indem der in Konflikt stehende Qualifizierer in der untergeordneten Klasse gelöscht wird. |
pCtx
[in] In der Regel ist dieser Wert null
. Andernfalls handelt es sich um einen Zeiger auf eine IWbemContext-Instanz, die von dem Anbieter verwendet werden kann, der die angeforderten Klassen bereitstellt.
ppCallResult
[out] Wenn null
, wird dieser Parameter nicht verwendet. Wenn lFlags
WBEM_FLAG_RETURN_IMMEDIATELY
enthält, wird die Funktion sofort mit WBEM_S_NO_ERROR
zurückgegeben. Der ppCallResult
-Parameter empfängt einen Zeiger auf ein neues IWbemCallResult-Objekt.
Rückgabewert
Die folgenden von dieser Funktion zurückgegebenen Werte werden in der WbemCli.h-Headerdatei definiert, oder Sie können sie als Konstanten im Code definieren:
Konstante | Wert | BESCHREIBUNG |
---|---|---|
WBEM_E_ACCESS_DENIED |
0x80041003 | Der Benutzer verfügt über keine Berechtigungen zum Erstellen oder Ändern von Klassen. |
WBEM_E_FAILED |
0x80041001 | Ein unbekannter Fehler ist aufgetreten. |
WBEM_E_INVALID_CLASS |
0x80041010 | Die angegebene Klasse ist ungültig. In der Regel zeigt dies an, dass pObject ein Instanzobjekt angibt. |
WBEM_E_INVALID_PARAMETER |
0x80041008 | Ein Parameter ist nicht gültig. |
WBEM_E_INVALID OPERATION |
0x80041016 | Der angegebene Klassenname ist ungültig. |
WBEM_E_CLASS_HAS_CHILDREN |
0x80041025 | Es wurde versucht, eine Änderung vorzunehmen, durch die eine Unterklasse ungültig würde. |
WBEM_E_ALREADY_EXISTS |
0x80041019 | Das WBEM_FLAG_CREATE_ONLY -Flag wurde angegeben, aber die Klasse ist bereits vorhanden. |
WBEM_E_NOT_FOUND |
0x80041002 | WBEM_FLAG_UPDATE_ONLY wurde in lFlags angegeben, und die Klasse wurde nicht gefunden. |
WBEM_E_INCOMPLETE_CLASS |
0x80041020 | Die erforderlichen Eigenschaften für Klassen wurden nicht alle festgelegt. |
WBEM_E_OUT_OF_MEMORY |
0x80041006 | Es ist nicht genügend Arbeitsspeicher verfügbar, um den Vorgang abzuschließen. |
WBEM_E_SHUTTING_DOWN |
0x80041033 | WMI wurde wahrscheinlich beendet und startet neu. Rufen Sie ConnectServerWmi erneut auf. |
WBEM_E_TRANSPORT_FAILURE |
0x80041015 | Fehler bei der Remoteprozeduraufruf-Verbindung (RPC) zwischen dem aktuellen Prozess und WMI. |
WBEM_S_NO_ERROR |
0 | Der Funktionsaufruf war erfolgreich. |
Bemerkungen
Diese Funktion umschließt einen Aufruf der IWbemServices::PutClass-Methode.
Der Benutzer darf keine Klassen mit Namen erstellen, die mit einem Unterstrich beginnen oder enden.
Wenn der Funktionsaufruf fehlschlägt, können Sie zusätzliche Fehlerinformationen abrufen, indem Sie die GetErrorInfo-Funktion aufrufen.
Anforderungen
Plattformen: Informationen finden Sie unter Systemanforderungen.
Header: WMINet_Utils.idl
.NET Framework-Versionen: Seit Version 4.7.2 verfügbar