Freigeben über


PutInstanceWmi-Funktion

Erstellt oder aktualisiert eine Instanz einer vorhandenen Klasse. Die Instanz wird in das WMI-Repository geschrieben.

Hinweis

Diese API ist nur für die interne Verwendung vorgesehen. Es ist nicht für die Verwendung aus Entwicklercode vorgesehen.

Syntax

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

Die Parameter

pInst
[in] Ein Zeiger auf die Instanz, die geschrieben werden soll.

lFlags
[in] Eine Kombination von Flags, die sich auf das Verhalten dieser Funktion auswirken. Die folgenden Werte werden in der Headerdatei WbemCli.h definiert, oder Sie können sie als Konstanten im Code definieren:

Dauerhaft Wert Description
WBEM_FLAG_USE_AMENDED_QUALIFIERS 0x20000 Wenn festgelegt, speichert WMI keine Qualifizierer mit dem Amended Geschmack.
Wenn nicht festgelegt, wird davon ausgegangen, dass dieses Objekt nicht lokalisiert ist und alle Qualifizierer mit dieser Instanz gespeichert werden.
WBEM_FLAG_CREATE_OR_UPDATE 0 Erstellen Sie die Instanz, wenn sie nicht vorhanden ist, oder überschreiben Sie sie, wenn sie bereits vorhanden ist.
WBEM_FLAG_UPDATE_ONLY 1 Aktualisieren Sie die Instanz. Die Instanz muss vorhanden sein, damit der Aufruf erfolgreich ist.
WBEM_FLAG_CREATE_ONLY 2 Erstellen Sie die Instanz. Der Aufruf schlägt fehl, wenn die Instanz bereits vorhanden ist.
WBEM_FLAG_RETURN_IMMEDIATELY 0x10 Das Flag verursacht einen semisynchronen Aufruf.

pCtx
[in] In der Regel ist nulldieser Wert . Andernfalls handelt es sich um einen Zeiger auf eine IWbemContext-Instanz , die vom Anbieter verwendet werden kann, der die angeforderten Klassen bereitstellt.

ppCallResult
[out] Wenn nulldieser Parameter nicht verwendet wird. Wenn lFlags sie enthält WBEM_FLAG_RETURN_IMMEDIATELY, wird die Funktion sofort mit WBEM_S_NO_ERROR. 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 Headerdatei WbemCli.h definiert, oder Sie können sie als Konstanten in Ihrem Code definieren:

Dauerhaft Wert Description
WBEM_E_ACCESS_DENIED 0x80041003 Der Benutzer verfügt nicht über die Berechtigung, eine Instanz der angegebenen Klasse zu aktualisieren.
WBEM_E_FAILED 0x80041001 Es ist ein nicht angegebener Fehler aufgetreten.
WBEM_E_INVALID_CLASS 0x80041010 Die Klasse, die diese Instanz unterstützt, ist ungültig.
WBEM_E_ILLEGAL_NULL 0x80041028 a null wurde für eine Eigenschaft angegeben, die nicht sein nullkann, z. B. eine Eigenschaft, die durch einen IndexedNot_Null Qualifizierer gekennzeichnet ist.
WBEM_E_INVALID_OBJECT 0x8004100f Die angegebene Instanz ist ungültig. (Beispielsweise gibt das Aufrufen PutInstanceWmi mit einer Klasse diesen Wert zurück.)
WBEM_E_INVALID_PARAMETER 0x80041008 Ein Parameter ist ungültig.
WBEM_E_ALREADY_EXISTS 0x80041019 Das WBEM_FLAG_CREATE_ONLY Flag wurde angegeben, aber die Instanz ist bereits vorhanden.
WBEM_E_NOT_FOUND 0x80041002 WBEM_FLAG_UPDATE_ONLY wurde in lFlagsangegeben, aber die Instanz ist nicht vorhanden.
WBEM_E_OUT_OF_MEMORY 0x80041006 Nicht genügend Arbeitsspeicher ist verfügbar, um den Vorgang abzuschließen.
WBEM_E_SHUTTING_DOWN 0x80041033 WMI wurde wahrscheinlich beendet und neu gestartet. Rufen Sie ConnectServerWmi erneut auf.
WBEM_E_TRANSPORT_FAILURE 0x80041015 Fehler beim Remoteprozeduraufruf (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::P utInstance-Methode .

Die PutInstanceWmi Funktion unterstützt das Erstellen von Instanzen und das Aktualisieren von Instanzen vorhandener Klassen nur. Je nachdem, wie der pCtx Parameter festgelegt wird, werden entweder einige oder alle Eigenschaften der Instanz aktualisiert.

Wenn die Instanz, auf pInst die verwiesen wird, zu einer Unterklasse gehört, ruft die Windows-Verwaltung alle Anbieter auf, die für die Klassen verantwortlich sind, von denen die Unterklasse abgeleitet wird. Alle diese Anbieter müssen erfolgreich sein, damit die ursprüngliche PutInstanceWmi Anforderung erfolgreich ist. Der Anbieter, der die oberste Klasse in der Hierarchie unterstützt, wird zuerst aufgerufen. Die Aufrufreihenfolge wird mit der Unterklasse der obersten Klasse fortgesetzt und wird von oben nach unten fortgesetzt, bis die Windows-Verwaltung den Anbieter für die Klasse erreicht, auf die die Instanz verweist pInst. Die Windows-Verwaltung ruft die Anbieter für keine der untergeordneten Klassen einer Instanz auf.

Wenn eine Anwendung eine Instanz aktualisieren muss, die zu einer Klassenhierarchie gehört, muss der pInst Parameter auf die Instanz verweisen, die die zu ändernden Eigenschaften enthält. Das heißt, betrachten Sie eine Zielinstanz, die zu ClassB gehört. Die ClassB Instanz wird von ClassA abgeleitet und ClassA definiert die Eigenschaft PropA. Wenn eine Anwendung den Wert PropA in der ClassB Instanz ändern möchte, muss sie auf diese Instanz und nicht auf eine Instanz von ClassA festgelegt pInst werden.

Das Aufrufen PutInstanceWmi einer Instanz einer abstrakten Klasse ist nicht zulässig.

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.

Kopfball: WMINet_Utils.idl

.NET Framework-Versionen: Verfügbar seit 4.7.2

Siehe auch