Share via


Empfangen von Ereignisbenachrichtigungen

Ereignisabfragen werden von temporären Ereignisconsumern, permanenten Ereignisconsumern und Ereignisanbietern verwendet. Ereignisconsumer verwenden Ereignisabfragen, um Ereignisse von Interesse anzugeben, und Ereignisanbieter verwenden die Abfragen, um die von ihnen bereitgestellten Ereignisse anzugeben.

Temporäre Consumer platzieren Abfragen in Aufrufen von IWbemServices::ExecNotificationQuery oder der IWbemServices::ExecNotificationQueryAsync-Methode. Permanente Ereignisconsumer platzieren Abfragen in der Query-Eigenschaft einer Instanz der __EventFilter-Systemklasse.

Ereignisanbieter verwenden Ereignisabfragen, um sich zu registrieren, um mindestens einen Ereignistyp zu unterstützen. Sie platzieren Abfragen in der EventQueryList-Eigenschaft einer Instanz der __EventProviderRegistration-Systemklasse. Alle Ereignisanbieter erstellen eine __EventProviderRegistration-Instanz, um sich bei der Windows-Verwaltungsinstrumentation (WMI) zu registrieren. Weitere Informationen finden Sie unter Registrieren eines Ereignisconsumeranbieters.

Ereignisconsumer und -anbieter verwenden die SELECT-Anweisung und eine zugehörige WHERE-Klausel für Ereignisabfragen sowie eine Vielzahl von Erweiterungen, die für die WMI-Abfragesprache (WQL) spezifisch sind. Die Erweiterungen werden verwendet, um Consumer vor der Überflutung mit Benachrichtigungen zu schützen, die zu häufig auftreten, um nützlich zu sein.

Consumer, die keine Benachrichtigung bei jedem Auftreten eines Ereignisses benötigen, können die folgenden Klauseln in ihren Abfragen angeben:

Die WITHIN- und HAVING-Klauseln wirken sich auf das Timing von Ereignissen aus, und die GROUP-Klausel bewirkt, dass anstelle eines häufig auftretenden Ereignisses ein repräsentatives Ereignis gesendet wird.