IWbemServices::ExecNotificationQuery-Methode (wbemcli.h)
Die IWbemServices::ExecNotificationQuery-Methode führt eine Abfrage aus, um Ereignisse zu empfangen. Der Aufruf wird sofort zurückgegeben, und der Benutzer kann den zurückgegebenen Enumerator nach Ereignissen abfragen, wenn sie eintreffen. Durch Freigeben des zurückgegebenen Enumerators wird die Abfrage abgebrochen.
Syntax
HRESULT ExecNotificationQuery(
[in] const BSTR strQueryLanguage,
[in] const BSTR strQuery,
[in] long lFlags,
[in] IWbemContext *pCtx,
[out] IEnumWbemClassObject **ppEnum
);
Parameter
[in] strQueryLanguage
Gültiger BSTR , der eine der von der Windows-Verwaltung unterstützten Abfragesprachen enthält. Dies kann nicht NULL sein. Derzeit wird nur die WMI-Abfragesprache (WQL ) unterstützt.
[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 muss auf WBEM_FLAG_RETURN_IMMEDIATELY und WBEM_FLAG_FORWARD_ONLY festgelegt werden, andernfalls schlägt der Aufruf fehl.
WBEM_FLAG_FORWARD_ONLY
Dieses Flag bewirkt, dass ein forward-only-Enumerator zurückgegeben wird. Forward-Only-Enumeratoren sind in der Regel viel schneller und verbrauchen weniger Arbeitsspeicher als herkömmliche Enumeratoren, lassen jedoch keine Aufrufe zum Klonen oder Zurücksetzen zu.
WBEM_FLAG_RETURN_IMMEDIATELY
Der Benutzer muss dieses Flag angeben, andernfalls schlägt der Aufruf fehl. Das liegt daran, dass Ereignisse kontinuierlich empfangen werden, was bedeutet, dass Benutzer*innen den zurückgegebenen Enumerator abfragen müssen. Wenn Sie diesen Aufruf unbegrenzt blockieren, während Sie auf ein mögliches Ereignis warten, wird der Thread für eine unbegrenzte Zeit blockiert. Weitere Informationen finden Sie unter Aufrufen einer Methode.
[in] pCtx
Normalerweise NULL. Andernfalls ist dies ein Zeiger auf ein IWbemContext-Objekt , das von dem Anbieter verwendet werden kann, der die angeforderten Ereignisse bereitstellt. 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.
[out] ppEnum
Wenn kein Fehler auftritt, empfängt dieser Parameter den Enumerator, mit dem der Aufrufer die Instanzen im Resultset der Abfrage abrufen kann. Der Aufrufer ruft regelmäßig IEnumWbemClassObject::Next auf, um zu überprüfen, ob Ereignisse verfügbar sind. Beachten Sie, dass das Zurücksetzen in dieser Verwendung den Enumerator nicht zurück an den Anfang der Ereignissequenz verschoben. es hat keine Auswirkung. Der Parameter kann weiterhin Ereignisse empfangen, bis Release für den zurückgegebenen Enumerator aufgerufen wird.
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.
COM-spezifische Fehlercodes können auch zurückgegeben werden, wenn Netzwerkprobleme dazu führen, dass die Remoteverbindung mit der Windows-Verwaltung verloren geht.
Hinweise
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“ Fehlercode als HRESULT-Wert zurückgibt. Der Grenzwert für WQL-Schlüsselwörter hängt davon ab, wie komplex die Abfrage ist.
Anforderungen
Anforderung | Wert |
---|---|
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 |
Weitere Informationen
IWbemServices::ExecNotificationQueryAsync