次の方法で共有


IWbemEventProviderQuerySink::NewQuery メソッド (wbemprov.h)

論理イベント コンシューマーが関連するイベント クエリ フィルターを Windows Management に登録するときに 、IWbemEventProviderQuerySink::NewQuery メソッドを呼び出します。 NewQuery メソッドは、クライアント アプリケーションによって登録された新しいクエリにプロバイダーが応答する方法を決定します。 WMI がコンシューマーから新しいイベント クエリまたは変更されたイベント クエリを受信すると、WMI は NewQuery を 呼び出して、イベント プロバイダーにクエリをエコーします。 その後、プロバイダーは要求された通知を生成します。

構文

HRESULT NewQuery(
  [in] unsigned long dwId,
  [in] WBEM_WSTR     wszQueryLanguage,
  [in] WBEM_WSTR     wszQuery
);

パラメーター

[in] dwId

クエリの Windows Management によって生成された識別子。 プロバイダーは、後で CancelQuery を呼び出す際に、どのクエリが取り消されたかをプロバイダーが認識できるように、これを追跡できます。

[in] wszQueryLanguage

次のクエリ フィルターの言語。 このバージョンの WMI では、常に "WQL" になります。

[in] wszQuery

論理コンシューマーによって登録されたイベント クエリ フィルターのテキスト。 イベント プロバイダーは、wszQuery パラメーターと wszQueryLanguage パラメーター内のクエリ フィルターの言語を使用してクエリ フィルターのテキストを調べて、コンシューマーが要求しているイベント通知を検出できます。

戻り値

このメソッドは、メソッド呼び出しの状態を示す HRESULT を返します。 次の一覧は 、NewQuery によって返されるリターン コードの一覧です。 さらに、サードパーティのイベント プロバイダーは、戻り値として NewQuery を介して渡すことができる任意の有効な WMI または COM リターン コードを返すことができます。

注釈

コンシューマーがイベント フィルター クエリを Windows Management に登録し、クエリに現在のイベント プロバイダーによって提供されるイベントへの参照が含まれている場合、Windows Management はイベント プロバイダーにクエリを通知できます。

プロバイダーが IWbemEventProviderQuerySink インターフェイスを実装している場合、Windows Management はクエリ テキストのコピーをプロバイダーに提供します。 プロバイダーはクエリを解析し、内部最適化を実行できるかどうかを判断する必要があります。

Windows Management では、プロバイダーが何らかの方法でその動作を変更することは想定されていません。 むしろ、これはプロバイダーが内部最適化を支援するためのアドバイザリ呼び出しです。

たとえば、プロバイダーが何百ものイベントを提供できるが、それらすべてを提供するために必要なオーバーヘッドが大きい場合、プロバイダーは、これらのイベントの大部分が現在のイベント コンシューマーのセットで必要とされないことを知っていれば、大幅な節約を実現できます。 プロバイダーが IWbemEventProviderQuerySink を実装している場合、すべてのコンシューマーによって要求された現在のイベント セットについて認識されます。 コンシューマーが実際にこのようなイベントの要求を開始するまで、サポートされているほとんどのイベントの種類を配信するためのメカニズムの設定を回避できる場合があります。

新しいコンシューマー クエリ フィルターごとに、一意の dwId を使用してこのメソッドを個別に呼び出します。 Windows Management は、同じ dwId 値に対して NewQuery を複数回呼び出す権利を留保します。たとえば、システム内の他の場所にスキーマの変更がある場合などです。 このバージョンの WMI の場合、クエリ言語は常に "WQL" です。

IWbemEventProviderQuerySink::NewQuery メソッドは、IWbemEventProvider::P rovideEvents メソッドの前に呼び出すことができます。

要件

要件
サポートされている最小のクライアント Windows Vista
サポートされている最小のサーバー Windows Server 2008
対象プラットフォーム Windows
ヘッダー wbemprov.h (Wbemidl.h を含む)
Library Wbemuuid.lib
[DLL] Wbemsvc.dll

関連項目

IWbemEventProviderQuerySink

IWbemEventProviderQuerySink::CancelQuery