次の方法で共有


WITHIN 句

イベント コンシューマーは、イベント クエリで WITHIN 句を使用して、ポーリング間隔 または グループ化間隔を指定します。

ポーリング間隔は、Windows Management Instrumentation (WMI) が組み込みイベント のクラスを担当するデータ プロバイダーポーリングするために使用する間隔です。その中で、クエリ対象のイベントはメンバーです。 この間隔は、イベントの通知を配信する前に渡すことができる最大時間です。 コンシューマーがクラスへの変更の通知を必要とし、イベント プロバイダーが使用できない場合、コンシューマーは WITHIN 句でポーリング間隔を使用します。 コンシューマーは組み込みイベントに登録し、ポーリング間隔を含めます。

ポーリング間隔を指定するには、次に示すように、WHERE 句の直前に WITHIN 句を配置します。

SELECT * FROM IntrinsicEventClass WITHIN interval  WHERE property = value

IntrinsicEventClass は、イベントがメンバーである組み込みイベント クラスであり、interval はポーリング間隔であり、値はコンシューマーが通知を必要とするプロパティの値です。

ポーリング間隔は浮動小数点数であり、1 秒未満の値を受け取る小数部にすることができます。 ただし、間隔は、0.001 などの非常に小さい値ではなく、秒数を表す必要があります。これは、値が小さすぎると、リソースを集中的に使用するポーリングの性質上、WMI がステートメントを無効として拒否する可能性があるためです。 ほとんどのイベント コンシューマーは即時通知を必要としないため、5 分を超える間隔を使用することをお勧めします。

次のクエリ例では、WIN32_LOGICALDISK クラスのインスタンスに対する変更が WMI によって 10 秒ごとにチェックされることを要求します。 指定したポーリング間隔内にクラスのインスタンスが変更されると、変更ごとに通知イベントが送信されます。

SELECT * FROM __InstanceModificationEvent WITHIN 10  WHERE TargetInstance ISA "Win32_LogicalDisk"

クエリに応じて、イベント プロバイダーと WMI はイベントを提供するタスクを共有できます。 たとえば、__InstanceDeletionEvent システム クラスのイベントではなく、__InstanceCreationEvent および __InstanceModificationEvent システム クラスのイベントをサポートするイベント プロバイダーです。 次のクエリを使用すると、イベント プロバイダーは、イベントが発生したときに作成イベントと変更イベントを生成し、作成時に配信することができます。 また、このクエリを使用すると、WMI はポーリング メカニズムを使用して 10 秒ごとに __InstanceDeletionEvent イベントを生成できます。

SELECT * FROM __InstanceOperationEvent WITHIN 10  WHERE TargetInstance ISA "MyOwnClass"

WITHIN 句を使用して、グループ化間隔を指定することもできます。 グループ化間隔は、WMI が同様のイベントを収集する必要がある初期イベントを受信した後の期間を指定する符号なし 32 ビット整数です。 この期間が経過すると、WMI は同様のすべてのイベントで構成される集計イベントを配信します。 詳細については、「GROUP 句の」を参照してください。

頻繁に発生するイベントに登録するイベント コンシューマーは、WITHIN 句でグループ化間隔を使用します。 イベント クエリで WHERE 句に GROUP WITHIN を追加すると、WMI は多数のイベントではなく 1 つの集計イベントを送信します。 集計イベントは、__AggregateEvent システム クラスによって表されます。

グループ化間隔を指定するには、GROUP 句の直後に WITHIN 句を配置します。

SELECT * FROM EventClass WHERE property = value GROUP WITHIN Interval

EventClass はイベントがメンバーであるイベント クラスであり、値はコンシューマーが通知を必要とするプロパティの値であり、Interval はグループ化間隔です。

詳細については、「受信するイベントの種類を決定するを参照してください。

永続的なイベント コンシューマーは、管理者特権がある場合にのみ、ポーリング クエリを使用して作成できます。