接收事件通知

事件查询由临时事件使用者、永久事件使用者和事件提供程序使用。 事件使用者使用事件查询来指定感兴趣的事件,事件提供程序使用查询来指定它们提供的事件。

临时使用者在调用 IWbemServices::ExecNotificationQueryIWbemServices::ExecNotificationQueryAsync 方法时进行查询。 永久事件使用者将查询置于 __EventFilter 系统类实例的 Query 属性中。

事件提供程序使用事件查询进行注册以支持一种或多种类型的事件。 它们将查询置于 __EventProviderRegistration 系统类实例的 EventQueryList 属性中。 所有事件提供程序都会创建一个 __EventProviderRegistration 实例以向 Windows Management Instrumentation (WMI) 注册。 有关详细信息,请参阅注册事件提供程序

事件使用者和提供程序使用 SELECT 语句和相关的 WHERE 子句进行事件查询,并使用各种特定于 WMI 查询语言 (WQL) 的扩展。 这些扩展用于保护使用者大量收到太过频繁出现以致无用的通知。

不需要每次事件发生时都收到通知的使用者可在其查询中指定以下子句:

WITHIN 和 HAVING 子句会影响事件的时间,使用 GROUP 子句时会生成一个代表性事件,而不是频繁发生的事件。