イベント通知を受信する

イベント クエリは、一時イベント コンシューマー、永続イベント コンシューマー、イベント プロバイダーによって使用されます。 イベント コンシューマーは、関心のあるイベントを指定する目的でイベント クエリを使用し、イベント プロバイダーは、提供するイベントを指定する目的でクエリを使用します。

一時コンシューマーは、IWbemServices::ExecNotificationQuery または IWbemServices::ExecNotificationQueryAsync メソッドの呼び出しでクエリを送信します。 永続イベント コンシューマーは、__EventFilter システム クラスのインスタンスの Query プロパティでクエリを送信します。

イベント プロバイダーは、1 つまたは複数の種類のイベントをサポートするために、イベント クエリを使用して登録を行います。 クエリは、__EventProviderRegistration システム クラスのインスタンスの EventQueryList プロパティで送信されます。 すべてのイベント プロバイダーは __EventProviderRegistration インスタンスを作成して Windows Management Instrumentation (WMI) に登録します。 詳細については、「イベント プロバイダーの登録」を参照してください。

イベント コンシューマーとイベント プロバイダーは、イベント クエリに SELECT ステートメントおよび関連する WHERE 句を使用するほか、WMI Query Language (WQL) に固有のさまざまな拡張機能を使用します。 この拡張機能は、頻度が高すぎて価値の低い通知の氾濫からコンシューマーを保護する目的で使用されます。

イベントが発生するたびに通知を受け取る必要はない場合、コンシューマーは、クエリで次の句を指定できます。

WITHIN 句と HAVING 句はイベントのタイミングに影響します。一方、GROUP 句では、頻繁に発生するイベントの代わりに代表的なイベントが送信されます。