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 をオーバーライドする一般的な方法を次に示します。
- Provider::CreateNewInstance を使用して、クラスの空のインスタンスを作成します。
- CInstance::SetByte や CInstance::SetStringArray など、CInstance クラスの Set メソッドを使用して、空のインスタンスのプロパティを設定します。
- CInstance::Commit を使用してインスタンスをクライアントに返送します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista |
サポートされている最小のサーバー | Windows Server 2008 |
対象プラットフォーム | Windows |
ヘッダー | provider.h (FwCommon.h を含む) |
Library | FrameDyn.lib |
[DLL] | FrameDynOS.dll;FrameDyn.dll |