次の方法で共有


CWbemProviderGlue::GetInstancesByQueryAsynch メソッド (wbemglue.h)

[CWbemProviderGlue クラスは WMI プロバイダー フレームワークの一部であり、現在最終的な状態と見なされています。これらのライブラリに影響を与える、セキュリティ関連以外の問題に対しては、それ以上の開発、機能強化、または更新プログラムは利用できません。 すべての新規開発には、MI API を使用する必要があります。]

GetInstancesByQueryAsynch メソッドは、特定のプロバイダーでサポートされ、特定のクエリに一致するインスタンスの一覧を取得します。 このメソッドを使用すると、プロバイダーは一度に 1 つのインスタンスを返すことによって非同期的に応答できます。

構文

HRESULT GetInstancesByQueryAsynch(
  LPCWSTR                    query,
  Provider                   *pRequester,
  LPProviderInstanceCallback pCallback,
  LPCWSTR                    pszNamespace,
  MethodContext              *pMethodContext,
  void                       *pUserData
);

パラメーター

query

実行するクエリ。

pRequester

フレームワーク プロバイダーによって提供されるクラスのインスタンスのポインター。 この "this" ポインターは、コールバック関数で必要な場合に備えて 、pCallback 関数に渡されます。

pCallback

このプロトタイプを使用した静的関数へのポインター。

static HRESULT WINAPI Classname::FunctionName(Provider *pProvider,
                                              CInstance *pInstance,
                                              MethodContext *pMethodContext,
                                              void *pUserData );

ここで、Classname は Provider クラスから派生したクラスの名前です。 これは、pRequester によって定義された "this" ポインターである、このクラスのインスタンスです。

pszNamespace

クエリの名前空間。 NULL の場合、既定の名前空間 root\cimv2 が使用されます。

pMethodContext

現在のコンテキストへのポインター。 デッドロックを防ぐためにコンテキストを指定する必要があります。 Provider::EnumerateInstances または Provider::ExecQuery によってプロバイダーに渡されたコンテキストを使用するか、CInstance::GetMethodContext を使用してインスタンスから取得します。 このパラメーターは NULL にすることはできません。

pUserData

pCallback が指す関数に渡されるユーザー定義データへのポインター。 NULL の場合、ユーザー定義データはありません。

戻り値

メソッドは、操作が成功した場合は WBEM_S_NO_ERROR を返し、メモリ不足のため操作が失敗した場合は WBEM_E_OUT_OF_MEMORY 、またはその他の HRESULT エラー コードが返されます。

解説

GetInstancesByQueryAsynch メソッドを使用すると、フレームワーク プロバイダーは WMI API 呼び出しを行うことなく、他のプロバイダーからデータにアクセスできます。 フレームワーク プロバイダーは、適切なインスタンスを返す GetInstancesByQueryAsynch にクエリを渡します。

パフォーマンス上の理由から、この関数を呼び出すときは、必要なプロパティのみを指定します (たとえば、SELECT *の代わりに SELECT を指定します)。

シンクへのコールバックは、クライアントが必要とするのと同じ認証レベルで返されない可能性があるため、非同期ではなく半同期通信を使用することをお勧めします。 非同期通信が必要な場合は、「 メソッドの呼び出し」を参照してください。

メソッドを半同期的に使用する方法の詳細については、「 CWbemProviderGlue::GetInstancesByQuery 」および 「メソッドの呼び出し」を参照してください。

要件

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