事件查询由临时事件消费者,永久事件消费者和事件提供者使用。事件消费者使用事件查询来指定感兴趣的事件,事件提供者使用查询来指定它们提供的事件。
临时消费者通过致电IWbemServices.ExecNotificationQuery或IWbemServices.ExecNotificationQueryAsync方法查询。永久事件消费者在__EventFilter系统类的实例的询问属性中查询。
事件提供者使用事件查询来注册以支持一种或多种类型的事件。他们在__EventProviderRegistration系统类的实例的EventQueryList属性中放置查询。所有事件提供者创建一个__EventProviderRegistration实例以注册Windows管理规范(WMI)。有关更多信息,请参阅注册事件提供程序。
事件消费者和提供商使用SELECT语句和相关的WHERE子句进行事件查询,以及WMI查询语言(WQL)特有的各种扩展。这些扩展用于保护消费者免于被频繁发生的通知所淹没,无法使用。
每次发生事件时都不需要通知的消费者可以在查询中指定以下条款:
· | WITHIN子句 |
· | GROUP子句 |
· | HAVING子句 |
WITHIN和HAVING子句影响事件的时间,GROUP子句会导致代表事件发送,而不是频繁发生的事件。