Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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