Freigeben über


IEnumWbemClassObject::NextAsync-Methode (wbemcli.h)

Verwenden Sie die NextAsync-Methode , wenn ein kontrollierter asynchroner Abruf von Objekten an eine Senke erforderlich ist. Normaler asynchroner Abruf, z. B. ein Aufruf von IWbemServices::ExecQueryAsync, führt zu einer unkontrollierten Übermittlung von Objekten an die IWbemObjectSink-Implementierung des Aufrufers. Diese Methode ist hilfreich für Fälle, in denen eine Komponente die Objektübermittlung steuert.

Syntax

HRESULT NextAsync(
  [in] ULONG           uCount,
  [in] IWbemObjectSink *pSink
);

Parameter

[in] uCount

Anzahl der angeforderten Objekte.

[in] pSink

Senke, um die Objekte zu empfangen. Die Senke muss vom Aufrufer implementiert werden. Da jeder Batch von Objekten angefordert wird, werden sie an den pSink-Parameter der Indicate-Methode übermittelt, gefolgt von einem letzten Aufruf des pSink-Parameters der SetStatus-Methode . Wenn die Senke zum Übermitteln von Objekten verwendet wird, gibt diese Methode WBEM_S_NO_ERROR zurück, auch wenn die Anzahl der zu liefernden Objekte kleiner als die angeforderte ist. Wenn jedoch keine weiteren Objekte mehr vorhanden sind, wird der pSink-Parameter ignoriert (es werden keine Aufrufe des pSink-Parameters von SetStatus durchgeführt). Stattdessen gibt diese Methode WBEM_S_FALSE zurück.

Rückgabewert

Die NextAsync-Methode gibt ein HRESULT zurück, das die status des Methodenaufrufs angibt. In der folgenden Liste ist der in einem HRESULT enthaltene Wert aufgeführt.

Hinweise

Ein Aufruf der COM-Funktion GetErrorInfo enthält weitere Informationen zum Fehler. COM-spezifische Fehlercodes können auch zurückgegeben werden, wenn Netzwerkprobleme dazu führen, dass Die Remoteverbindung mit der Windows-Verwaltung verloren geht.

Dieser Aufruf wird sofort zurückgegeben, und die Übermittlung an die Senke erfolgt im Hintergrund. Wenn mehrere Aufrufe an diese Methode von einem oder mehreren Threads erfolgen, werden sie logisch in die Warteschlange eingereiht, und die Reihenfolge der Aufrufe und die Objektübermittlung werden beibehalten. Mehrere Aufrufe dieser Methode aus einem oder mehreren Threads werden erst zurückgegeben, wenn alle senkenden Objekte im Zusammenhang mit vorherigen Aufrufen dieser Methode verarbeitet wurden. Ein Aufruf von Reset wirkt sich nicht auf die Übermittlung von Objekten aus, die aufgrund vorheriger Aufrufe derzeit ausgeführt werden. Die Reset-Methode bewirkt, dass neue Aufrufe nur am Anfang der Objektsequenz beginnen.

Wenn die Anzahl der angeforderten Objekte sofort verfügbar ist, gibt die Funktion WBEM_S_NO_ERROR zurück. Wenn weniger als die Anzahl der angeforderten Objekte verfügbar ist, werden die verfügbaren Objekte zurückgegeben und WBEM_S_NO_ERROR zurückgegeben. Der Rest der Objekte wird von der vom Benutzer bereitgestellten Senke bereitgestellt.

Sobald die Objekte verfügbar werden, wird die Implementierung von IWbemObjectSink::Indicate durch den Aufrufer 0 oder häufiger aufgerufen, um die Objekte zu übermitteln. Darauf folgt ein Aufruf von IWbemObjectSink::SetStatus mit dem Wert WBEM_S_NO_ERROR , wenn uCount-Elemente zurückgegeben werden.

Wenn weniger Objekte als die angeforderte Anzahl verfügbar sind, wird angeben für die verfügbaren Objekte aufgerufen. SetStatus wird dann mit dem Wert WBEM_S_FALSE oder dem Fehlercode aufgerufen, wenn ein Fehler aufgetreten ist.

Wenn die angeforderte Anzahl von Objekten übermittelt wird, folgt auf das endgültige Objekt ein Aufruf von SetStatus mit dem status Code WBEM_S_NO_ERROR. Wenn die Enumeration abgeschlossen ist, bevor die angeforderte Anzahl von Objekten übermittelt werden kann, verfügt die SetStatus-Methode über einen status Code von WBEM_S_FALSE.

Wenn keine Objekte verfügbar sind, wird angeben nicht aufgerufen. Ein letzter Aufruf von SetStatus erfolgt jedoch immer, um die status des gesamten Vorgangs anzugeben.

Da der Rückruf möglicherweise nicht auf derselben Authentifizierungsebene zurückgegeben wird, wie es für den Client erforderlich ist, wird empfohlen, die semisynchrone anstelle der asynchronen Kommunikation zu verwenden. Wenn Sie asynchrone Kommunikation benötigen, finden Sie weitere Informationen unter Aufrufen einer Methode.

Weitere Informationen zur semisynchronen Verwendung von Methoden finden Sie unter IEnumWbemClassObject::Next und Aufrufen einer Methode.

Anforderungen

   
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