Provider::EnumerateInstances メソッド (provider.h)

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

EnumerateInstances メソッドは、フレームワーク プロバイダーのクラスのすべてのインスタンスを取得するために WMI によって呼び出されます。

構文

HRESULT EnumerateInstances(
  MethodContext *pMethodContext,
  long          lFlags
);

パラメーター

pMethodContext

この呼び出しのコンテキスト オブジェクトへのポインター。 この値には、クライアントによって指定された IWbemContext プロパティが含まれます。 また、このポインターは、WMI への呼び出しのパラメーターとして使用する必要があります。

lFlags

EnumerateInstances 操作に関する情報を含むフラグのビットマスク。 これは、 IWbemServices::CreateInstanceEnum メソッドでクライアントによって指定された値です。

次のフラグは、WMI によって処理 (およびフィルター処理) されます。

  • WBEM_FLAG_DEEP
  • WBEM_FLAG_SHALLOW
  • WBEM_FLAG_RETURN_IMMEDIATELY
  • WBEM_FLAG_FORWARD_ONLY
  • WBEM_FLAG_BIDIRECTIONAL
  • WBEM_FLAG_USE_AMENDED_QUALIFIERS

戻り値

このメソッドの既定のフレームワーク プロバイダーの実装では、呼び出し元のメソッドに WBEM_E_PROVIDER_NOT_CAPABLE が返されます。 IWbemServices::CreateInstanceEnum メソッドは、最も一般的な戻り値を一覧表示しますが、任意の COM リターン コードを返すように選択できます。

注釈

0 個の CInstance インスタンスをインスタンス化し、戻り値を WBEM_S_NO_ERRORに設定することで、EnumerateInstances が 0 個のインスタンスを返してもエラーではありません。

WMI は多くの場合、クライアント アプリケーションが IWbemServices::CreateInstanceEnum を呼び出すときに EnumerateInstances を呼び出しますが、WMI は他の状況でも EnumerateInstances を呼び出す可能性があります。 EnumerateInstances をオーバーライドする一般的な方法を次に示します。

  1. Provider::CreateNewInstance を使用して、クラスの空のインスタンスを作成します。
  2. CInstance::SetByte や CInstance::SetStringArray など、CInstance クラスの Set メソッドを使用して、空のインスタンスのプロパティを設定します。
  3. CInstance::Commit を使用してインスタンスをクライアントに返送します。
メソッドのみのプロバイダーを構築していて、インスタンスがない場合、またはクラスのインスタンスを列挙すると返されるインスタンスが多すぎる場合は、特定のインスタンスのみを取得するクエリをサポートすることを決定できます。

要件

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