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

IWbemServices::ExecNotificationQueryAsync

Abfragen mit WQL

Empfangen von Ereignissen für die Dauer Ihrer Anwendung

Abrufen eines Fehlercodes