Methode ' Swap Service Type. putasync '

Die putasync -Methode des-Objekts von " taubemservicesex " speichert ein-Objekt asynchron in einem Namespace. Bei erfolgreicher Ausführung sendet diese Methode ein onabgeschlossene -Ereignis an das " slibemsink "-Objekt, das als Eingabeparameter angegeben wird.

Diese Methode wird im asynchronen Modus aufgerufen. Weitere Informationen finden Sie unter Aufrufen einer Methode.

Eine Erläuterung dieser Syntax finden Sie unter Dokument Konventionen für die Skript-API.

Syntax

SWbemServicesEx.PutAsync( _
  ByVal objWbemSink, _
  ByVal ojbWbemObject, _
  [ ByVal iFlags ], _
  [ ByVal objWbemNamedValueSet ], _
  [ ByVal objWbemAsyncContext ] _
)

Parameter

objwbemsink

Erforderlich. Objekt Senke, die die-Objekte asynchron empfängt. Erstellen Sie ein " Swap "-Objekt, um die Objekte zu empfangen.

ojbwbejbject

Erforderlich. Das neue-Objekt, das in den-Namespace eingefügt werden soll. Hierbei kann es sich um ein neu erstelltes Objekt oder ein geändertes Objekt handeln.

IFlags [ optionale]

Dieser Parameter bestimmt, ob der-Befehl das-Objekt erstellt oder aktualisiert und ob der-Rückruf sofort zurückgegeben wird. Dieser Parameter kann die folgenden Werte annehmen.

wbemchangeflagupdatecompatible (0 (0x0))

Ermöglicht es, eine Klasse zu aktualisieren, wenn keine abgeleiteten Klassen und keine Instanzen für die Klasse vorhanden sind. Sie ermöglicht auch Updates in allen Fällen, in denen sich die Änderung nur an wichtigen Qualifizierern, z. b. dem Beschreibungs Qualifizierer, befindet Dies ist das Standardverhalten für diesen-Befehl und wird aus Gründen der Kompatibilität mit früheren Versionen von WMI verwendet. Wenn die Klasse über Instanzen verfügt, tritt bei der Aktualisierung ein Fehler auf.

wbemchangeflagupdatesafemode (32 (0x20))

Ermöglicht das Aktualisieren von Klassen auch dann, wenn untergeordnete Klassen vorhanden sind und die Änderung keine Konflikte mit den untergeordneten Klassen verursacht. Verwenden Sie dieses Flag, wenn Sie einer Basisklasse eine neue Eigenschaft hinzufügen, die zuvor in einer der untergeordneten Klassen nicht erwähnt wurde. Wenn die Klasse über Instanzen verfügt, tritt bei der Aktualisierung ein Fehler auf.

wbemchangeflagupdateforcemode (64 (0x40))

Dieses Flag erzwingt die Aktualisierung von Klassen, wenn widersprüchliche untergeordnete Klassen vorhanden sind. Beispielsweise erzwingt dieses Flag ein Update, wenn ein Klassen Qualifizierer in einer untergeordneten Klasse definiert ist, und die Basisklasse versucht, denselben Qualifizierer in Konflikt mit dem vorhandenen zu addieren. Im Force-Modus wird dieser Konflikt gelöst, indem der widersprüchliche Qualifizierer in der untergeordneten Klasse gelöscht wird. Wenn die Klasse über Instanzen verfügt, tritt bei der Aktualisierung ein Fehler auf.

Die Verwendung des Force-Modus zum Aktualisieren einer statischen Klasse bewirkt, dass alle Instanzen dieser Klasse gelöscht werden. Bei einem erzwungenen Update für eine Anbieter Klasse werden keine Instanzen der-Klasse gelöscht.

wbemchangeflagkreateorupdate (0 (0x0))

Bewirkt, dass die Klasse oder Instanz erstellt wird, wenn Sie nicht vorhanden ist, oder überschrieben, wenn Sie bereits vorhanden ist.

wbemchangeflagkreateonly (2 (0x2))

Wird nur für die Erstellung verwendet. Der-Rückruf schlägt fehl, wenn die Klasse oder Instanz bereits vorhanden ist.

wbemchangeflagupdateonly (1 (0x1))

Bewirkt, dass dieser Update Vorgang aktualisiert wird. Die Klasse oder Instanz muss vorhanden sein, damit der-Befehl erfolgreich ausgeführt werden konnte.

wbemFlagReturnImmediately (16 (0x10))

Bewirkt, dass der-Rückruf sofort zurückgegeben wird.

wbemflagreturn. Complete (0 (0x0))

Bewirkt, dass dieser-Vorgang blockiert wird, bis die Abfrage beendet ist. Mit diesem Flag wird die-Methode im synchronen Modus aufgerufen.

wbemflaguseamendedqualifizierer (131072 (0x20000))

Bewirkt, dass WMI Klassen Zusatzdaten und die Basisklassen Definition schreibt. Weitere Informationen finden Sie unter Lokalisieren von WMI-Klassen Informationen.

objwbemnamedvalueset [ optionale]

Dies ist in der Regel nicht definiert. Andernfalls handelt es sich hierbei um ein Objekt vom typswap namedvalueset , dessen Elemente die Kontextinformationen darstellen, die von dem Anbieter verwendet werden können, der die Anforderung verwendet. Ein Anbieter, der solche Informationen unterstützt oder erfordert, muss die erkannten Wertnamen, den Datentyp des Werts, zulässige Werte und die Semantik dokumentieren.

objwbemasynccontext [ optionale]

Ein " taubemnamedvalueset "-Objekt, das zur Objekt Senke zurückkehrt, um die Quelle des ursprünglichen asynchronen Aufrufes aufzurufen. Verwenden Sie diesen Parameter, um mehrere asynchrone Aufrufe mithilfe derselben Objekt Senke auszuführen. Um diesen Parameter zu verwenden, erstellen Sie ein Objekt vom Typ " Swap namedvalueset ", und verwenden Sie die Methode " taubemnamedvalueset. Add ", um einen Wert hinzuzufügen, der den von Ihnen ausgeführten asynchronen Befehl identifiziert. Dieses Objekt vom Typ " Swap namedvalueset " wird an die Objekt Senke zurückgegeben, und die Quelle des Aufrufes kann mithilfe der Methode " Swap Name. Item " extrahiert werden. Weitere Informationen finden Sie unter Aufrufen einer Methode.

Rückgabewert

Diese Methode gibt keinen Wert zurück. Wenn der-Befehl erfolgreich ausgeführt wurde, empfängt das onobjectput -Ereignis der angegebenen Objekt Senke ein " errbecombjectpath "-Objekt, das den Objekt Pfad der Instanz oder Klasse enthält, für die erfolgreich ein Commit in WMI ausgeführt wurde.

Fehlercodes

Nach dem Abschluss der putasync -Methode kann das Err -Objekt einen der Fehlercodes in der folgenden Liste enthalten.

wbemErrAccessDenied -2147749891 (0x80041003)

Der aktuelle Benutzer verfügt nicht über die Berechtigung zum Aktualisieren einer Instanz der angegebenen Klasse.

wbemErrAlreadyExists -2147749913 (0x80041019)

Das Flag " wbemchangeflagkreateonly " wurde angegeben, aber die Instanz ist bereits vorhanden.

wbemErrFailed -2147749889 (0x80041001)

Unbekannter Fehler.

wbemErrIllegalNull -2147749898 (0x8004100a)

Für eine Eigenschaft, die nicht NULL sein darf, wurde ein NULL-Wert angegeben. Ein Beispiel für eine solche Eigenschaft ist eine, die durch einen Schlüssel-, indizierten oder Not _ null -Qualifizierer gekennzeichnet ist.

wbemErrInvalidObject -2147749908 (0x80041014)

Die angegebene Instanz ist ungültig.

wbemErrInvalidParameter -2147749896 (0x80041008)

Ein angegebener Parameter ist ungültig.

wbemErrNotFound -2147749890 (0x80041002 angezeigt)

Das Flag " wbemchangeflagupdateonly " wurde angegeben, aber die Instanz oder Klasse ist nicht vorhanden.

wbemErrIncompleteClass -2147749920 (0x80041020)

Erforderliche Eigenschaften für Klassen wurden nicht alle festgelegt.

wbemErrOutOfMemory -2147749894 (0x80041006)

Der Arbeitsspeicher reicht nicht aus, um den Vorgang abzuschließen.

Bemerkungen

Dieser Aufruf wird sofort zurückgegeben, und die Ergebnisse und der Status werden mithilfe von Ereignissen, die an die in objwbemsink angegebene Senke gesendet werden, an den Aufrufer zurückgegeben. Um jedes Objekt zu verarbeiten, wenn es eingeht, erstellen Sie eine objwbemsink. Onobjectready -Ereignis Unterroutine. Jede Verarbeitung, die nach dem Eintreffen aller Objekte erfolgt, erfolgt in einer Unterroutine für die objwbemsink. Onabgeschlossene -Ereignis.

Ein asynchroner Rückruf ermöglicht einem nicht authentifizierten Benutzer das Bereitstellen von Daten für die Senke. Dies birgt Sicherheitsrisiken für Ihre Skripts und Anwendungen. Um die Risiken auszuschließen, finden Sie weitere Informationen unter Festlegen der Sicherheit für einen asynchronen-Befehl.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows Vista
Unterstützte Mindestversion (Server)
Windows Server 2008
Header
Wbemdisp. h
Typbibliothek
Wbemdisp. tlb
DLL
Wbemdisp.dll
CLSID
CLSID _ iswbemservicesex
IID
IID _ iswbemservicesex