IWbemServices::ExecNotificationQueryAsync-Methode (wbemcli.h)
Die IWbemServices::ExecNotificationQueryAsync-Methode führt dieselbe Aufgabe wie IWbemServices::ExecNotificationQuery aus, mit der Ausnahme, dass Ereignisse für den angegebenen Antworthandler bereitgestellt werden, bis CancelAsyncCall aufgerufen wird, um die Ereignisbenachrichtigung zu beenden.
Syntax
HRESULT ExecNotificationQueryAsync(
[in] const BSTR strQueryLanguage,
[in] const BSTR strQuery,
[in] long lFlags,
[in] IWbemContext *pCtx,
[in] IWbemObjectSink *pResponseHandler
);
Parameter
[in] strQueryLanguage
Gültiger BSTR , der eine der von der Windows-Verwaltung unterstützten Abfragesprachen enthält. Dies muss "WQL" sein.
[in] strQuery
Gültiger BSTR , der den Text der ereignisbezogenen Abfrage enthält. Dies kann nicht NULL sein. Weitere Informationen zum Erstellen von WMI-Abfragezeichenfolgen finden Sie unter Abfragen mit WQL sowie in der Referenz zu WQL.
[in] lFlags
Dieser Parameter kann der folgende Wert sein.
WBEM_FLAG_SEND_STATUS
Dieses Flag registriert bei der Windows-Verwaltung eine Anforderung zum Empfangen von zwischengeschalteten status Berichten über die Clientimplementierung von IWbemObjectSink::SetStatus. Die Anbieterimplementierung muss die Berichterstellung für zwischengeschaltete status unterstützen, damit dieses Flag das Verhalten ändern kann.
[in] pCtx
Normalerweise NULL. Andernfalls ist dies ein Zeiger auf ein IWbemContext-Objekt , das von dem Anbieter verwendet werden kann, der die angeforderten Ereignisse zurückgibt. Die Werte im Kontextobjekt müssen in der Dokumentation für den betreffenden Anbieter angegeben werden. Weitere Informationen zu diesem Parameter finden Sie unter Tätigen von Aufrufen von WMI.
[in] pResponseHandler
Zeiger auf die Implementierung von IWbemObjectSink durch den Aufrufer. Dieser Handler empfängt die Objekte im Abfrageergebnissatz, sobald sie verfügbar werden. Zum Beenden des Empfangens von Ereignissen muss der Aufrufer IWbemServices::CancelAsyncCall mit demselben Zeigerwert für pResponseHandler aufrufen. Sobald Ereignisse verfügbar werden, wird die bereitgestellte IWbemObjectSink::Indicate-Implementierung aufgerufen, um die Ereignisobjekte zu übermitteln. Die IWbemObjectSink::SetStatus-Methode wird zu keinem Zeitpunkt aufgerufen, da es keine endgültige oder beendende Bedingung gibt. Der Aufruf wird unbegrenzt ausgeführt, bis er abgebrochen wird. Wenn Fehlercode zurückgegeben wird, wird der angegebene IWbemObjectSink-Zeiger nicht verwendet. Wenn WBEM_S_NO_ERROR zurückgegeben wird, wird die IWbemObjectSink-Implementierung des Benutzers aufgerufen, um das Ergebnis des Vorgangs anzugeben. Die Windows-Verwaltung ruft AddRef nur auf dem Zeiger auf, wenn WBEM_S_NO_ERROR zurückgegeben wird. In Fällen, in denen ein Fehlercode zurückgegeben wird, ist die Verweisanzahl identisch mit der beim Eintrag. Eine ausführliche Erläuterung zu diesem Parameter finden Sie unter Aufrufen einer Methode.
Rückgabewert
Diese Methode gibt ein HRESULT zurück, das den Status des Methodenaufrufs angibt. Die folgende Liste listet den Wert auf, der in einem HRESULT enthalten ist.
Bei Einem Fehler können Sie alle verfügbaren Informationen von der COM-Funktion GetErrorInfo abrufen.
Andere Fehlercodes werden an die Objektsenke zurückgegeben, die durch den pResponseHandler-Parameter angegeben wird.
COM-spezifische Fehlercodes können auch zurückgegeben werden, wenn Netzwerkprobleme dazu führen, dass die Remoteverbindung mit der Windows-Verwaltung verloren geht.
Hinweise
Die IWbemObjectSink::SetStatus-Methode wird aufgerufen, um das Ende des Resultsets anzugeben. Es kann auch ohne eingreifende Aufrufe von IWbemObjectSink::Geben Sie an, ob Fehlerbedingungen auftreten.
Da der Rückruf möglicherweise nicht auf der gleichen Authentifizierungsebene zurückgegeben wird, die der Client benötigt, wird empfohlen, die semisynchrone Kommunikation anstelle der asynchronen Kommunikation zu verwenden. Wenn Sie eine asynchrone Kommunikation benötigen, finden Sie weitere Informationen unter Aufrufen einer Methode.
Weitere Informationen zur semisynchronen Verwendung von Methoden finden Sie unter IWbemServices::ExecNotificationQuery und Aufrufen einer Methode.
Es gibt Grenzwerte für die Anzahl von AND- und OR-Schlüsselwörtern, die in WQL-Abfragen verwendet werden können. Eine große Anzahl an WQL-Schlüsselwörtern, die in einer komplexen Abfrage verwendet werden, kann dazu führen, dass WMI den Fehlercode WBEM_E_QUOTA_VIOLATION als HRESULT-Wert zurückgibt. Der Grenzwert für WQL-Schlüsselwörter hängt davon ab, wie komplex die Abfrage ist.
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; 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 |