IWbemServices::P utClass-Methode (wbemcli.h)

Die IWbemServices::P utClass-Methode erstellt eine neue Klasse oder aktualisiert eine vorhandene Klasse. Die vom pObject-Parameter angegebene Klasse muss ordnungsgemäß mit allen erforderlichen Eigenschaftswerten initialisiert worden sein.

Der Benutzer darf keine Klassen mit Namen erstellen, die mit einem Unterstrich (_) beginnen oder enden. Dies ist für Systemklassen reserviert.

Syntax

HRESULT PutClass(
  [in]  IWbemClassObject *pObject,
  [in]  long             lFlags,
  [in]  IWbemContext     *pCtx,
  [out] IWbemCallResult  **ppCallResult
);

Parameter

[in] pObject

Muss auf eine gültige Klassendefinition verweisen. Die Verweisanzahl wird nicht geändert.

[in] lFlags

Die folgenden Flags wirken sich auf das Verhalten dieser Methode aus.

WBEM_FLAG_USE_AMENDED_QUALIFIERS

Wenn dieses Flag festgelegt ist, speichert WMI keine Qualifizierer mit der geänderten Variante. Wenn dieses Flag nicht festgelegt ist, wird davon ausgegangen, dass dieses Objekt nicht lokalisiert ist, und alle Qualifizierer werden mit diesem instance gespeichert.

WBEM_FLAG_CREATE_OR_UPDATE

Dieses Flag bewirkt, dass die Klasse erstellt wird, wenn sie nicht vorhanden ist, oder überschrieben wird, wenn sie bereits vorhanden ist.

WBEM_FLAG_UPDATE_ONLY

Dieses Flag bewirkt, dass dieser Aufruf aktualisiert wird. Die Klasse muss vorhanden sein, damit der Aufruf erfolgreich ist.

WBEM_FLAG_CREATE_ONLY

Dieses Flag wird nur für die Erstellung verwendet. Der Aufruf schlägt fehl, wenn die Klasse bereits vorhanden ist.

WBEM_FLAG_RETURN_IMMEDIATELY

Dieses Flag bewirkt, dass es sich um einen semisynchronen Aufruf handelt. Weitere Informationen finden Sie unter Aufrufen einer Methode.

WBEM_FLAG_OWNER_UPDATE

Pushanbieter müssen dieses Flag beim Aufrufen von PutClass angeben, um anzugeben, dass sich diese Klasse geändert hat.

WBEM_FLAG_UPDATE_COMPATIBLE

Dieses Flag ermöglicht es, eine Klasse zu aktualisieren, wenn keine abgeleiteten Klassen vorhanden sind und keine Instanzen für diese Klasse vorhanden sind. Es ermöglicht auch Updates in allen Fällen, wenn die Änderung nur auf nicht wichtige Qualifizierer (z. B. den Beschreibungsqualifizierer) erfolgt. Dies ist das Standardverhalten für diesen Aufruf und wird zur Kompatibilität mit früheren Versionen der Windows-Verwaltung verwendet. Wenn die Klasse über Instanzen verfügt oder Änderungen an wichtigen Qualifizierern vorgenommen werden, schlägt die Aktualisierung fehl.

WBEM_FLAG_UPDATE_SAFE_MODE

Dieses Flag ermöglicht Aktualisierungen von Klassen, auch wenn untergeordnete Klassen vorhanden sind, solange die Änderung keine Konflikte mit untergeordneten Klassen verursacht. Ein Beispiel für eine Aktualisierung, die dieses Flag zulässt, wäre das Hinzufügen einer neuen Eigenschaft zur Basisklasse, die zuvor in keiner der untergeordneten Klassen erwähnt wurde. Wenn die Klasse über Instanzen verfügt, ist die Aktualisierung nicht erfolgreich.

WBEM_FLAG_UPDATE_FORCE_MODE

Dieses Flag erzwingt Aktualisierungen von Klassen, wenn in Konflikt stehende untergeordnete Klassen vorhanden sind. Ein Beispiel für eine Aktualisierung, die dieses Flag erzwingen würde, wäre, wenn ein Klassenqualifizierer in einer untergeordneten Klasse definiert wäre und die Basisklasse versucht, denselben Qualifizierer hinzuzufügen, der mit dem vorhandenen in Konflikt stand. Im Erzwingungsmodus würde dieser Konflikt behoben, indem der in Konflikt stehende Qualifizierer in der untergeordneten Klasse gelöscht wird.

[in] pCtx

In der Regel NULL. Andernfalls ist dies ein Zeiger auf ein IWbemContext-Objekt , das vom dynamischen Klassenanbieter benötigt wird, der die Klasseninstanzen erzeugt. Die Werte im Kontextobjekt müssen in der Dokumentation für den betreffenden Anbieter angegeben werden. Weitere Informationen zu diesem Parameter finden Sie unter Ausführen von Aufrufen an WMI.

[out] ppCallResult

Wenn NULL, wird dieser Parameter nicht verwendet. Wenn der lFlags-ParameterWBEM_FLAG_RETURN_IMMEDIATELY enthält, wird dieser Aufruf sofort mit WBEM_S_NO_ERROR zurückgegeben. Der ppCallResult-Parameter empfängt einen Zeiger auf ein neues IWbemCallResult-Objekt , das dann abgefragt werden kann, um das Ergebnis mithilfe der IWbemCallResult::GetCallStatus-Methode abzurufen.

Rückgabewert

Diese Methode gibt ein HRESULT zurück, das den Status des Methodenaufrufs angibt. In der folgenden Liste ist der in einem HRESULT enthaltene Wert aufgeführt.

Bei einem Fehler können Sie alle verfügbaren Informationen über die COM-Funktion GetErrorInfo abrufen.

COM-spezifische Fehlercodes können auch zurückgegeben werden, wenn Netzwerkprobleme dazu führen, dass die Remoteverbindung mit der Windows-Verwaltung verloren geht.

Hinweis Unvorhersehbares Verhalten ergibt sich, wenn Sie Klassendefinitionen ändern, während sie von Clients oder Anbietern verwendet werden. Die IWbemServices::P utClass-Methode sollte nur verwendet werden, um eine Klasse zu erstellen oder zu aktualisieren, wenn derzeit keine Clients oder Anbieter die Klasse verwenden.
 

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista
Unterstützte Mindestversion (Server) Windows Server 2008
Zielplattform Windows
Kopfzeile wbemcli.h (include Wbemidl.h)
Bibliothek Wbemuuid.lib
DLL Fastprox.dll; Esscli.dll; FrameDyn.dll; FrameDynOS.dll; Ntevt.dll; Stdprov.dll; Viewprov.dll; Wbemcomn.dll; Wbemcore.dll; Wbemess.dll; Wbemsvc.dll; Wmipicmp.dll; Wmidcprv.dll; Wmipjobj.dll; Wmiprvsd.dll

Weitere Informationen

Erstellen einer Klasse

IWbemCallResult

IWbemServices

Abrufen eines Fehlercodes