IWbemServices::ExecQuery メソッド (wbemcli.h)
IWbemServices::ExecQuery メソッドは、オブジェクトを取得するクエリを実行します。
実行できるクエリの有効な種類については、「 WQL を使用したクエリ」を参照してください。
構文
HRESULT ExecQuery(
[in] const BSTR strQueryLanguage,
[in] const BSTR strQuery,
[in] long lFlags,
[in] IWbemContext *pCtx,
[out] IEnumWbemClassObject **ppEnum
);
パラメーター
[in] strQueryLanguage
Windows Management でサポートされているクエリ言語のいずれかを含む有効な BSTR 。 これは、WMI クエリ言語の頭字語である "WQL" である必要があります。
[in] strQuery
クエリのテキストを含む有効な BSTR 。 このパラメーターを NULL にすることはできません。 WMI クエリ文字列の構築の詳細については、「WQL を使用したクエリ」 および 「WQL」を参照してください。
[in] lFlags
次のフラグは、このメソッドの動作に影響します。 このパラメーターの推奨値は WBEM_FLAG_RETURN_IMMEDIATELY であり、最適なパフォーマンスを 得るためのWBEM_FLAG_FORWARD_ONLY です。
WBEM_FLAG_USE_AMENDED_QUALIFIERS
このフラグが設定されている場合、WMI は、現在の接続のロケールのローカライズされた名前空間に格納されている修正された修飾子を取得します。 設定されていない場合は、イミディエイト名前空間に格納されている修飾子のみが取得されます。
WBEM_FLAG_FORWARD_ONLY
このフラグにより、前方専用列挙子が返されます。 前方専用列挙子は、通常ははるかに高速であり、従来の列挙子よりも少ないメモリを使用しますが、 Clone または Reset の呼び出しは許可されません。
WBEM_FLAG_BIDIRECTIONAL
このフラグにより、クライアントが列挙子を解放するまで、Windows Management は列挙のオブジェクトへのポインターを保持します。
WBEM_FLAG_RETURN_IMMEDIATELY
このフラグにより、これは半同期呼び出しになります。 詳細については、「メソッドの呼び出し」を参照してください。
WBEM_FLAG_ENSURE_LOCATABLE
このフラグを指定すると、返されたオブジェクトに十分な情報が含まれるので、 __PATH、 __RELPATH、 __SERVERなどのシステム プロパティは NULL 以外になります。
WBEM_FLAG_PROTOTYPE
このフラグは、プロトタイプ作成のために使用します。 クエリは実行されず、代わりに通常の結果オブジェクトのように見えるオブジェクトが返されます。
WBEM_FLAG_DIRECT_READ
このフラグは、親クラスまたはサブクラスに関係なく、指定されたクラスのプロバイダーに直接アクセスします。
[in] pCtx
通常 は NULL です。 それ以外の場合、これは、要求されたクラスまたはインスタンスを提供しているプロバイダーが使用できる IWbemContext オブジェクトへのポインターです。 コンテキスト オブジェクトの値は、該当するプロバイダーのドキュメントで指定する必要があります。 このパラメーターの詳細については、「 WMI への呼び出しの作成」を参照してください。
[out] ppEnum
エラーが発生しない場合は、呼び出し元がクエリの結果セット内のインスタンスを取得できるようにする列挙子を受け取ります。 クエリに 0 インスタンスの結果セットが含まれるというエラーではありません。 これは、インスタンスを反復処理することによってのみ決定されます。 このオブジェクトは、正の参照カウントで を返します。 オブジェクトが不要になった場合、呼び出し元は Release を呼び出す必要があります。
戻り値
このメソッドは、メソッド呼び出しの状態を示す HRESULT を返します。 次の一覧は、 HRESULT に含まれる値の一覧です。
失敗した場合は、COM 関数 GetErrorInfo から使用可能な情報を取得できます。
ネットワークの問題によって Windows Management へのリモート接続が失われると、COM 固有のエラー コードも返される可能性があります。
解説
IWbemServices::ExecQuery メソッドは strQuery パラメーターで指定されたクエリを処理し、呼び出し元がクエリ結果にアクセスできる列挙子を作成します。 列挙子は、IEnumWbemClassObject インターフェイスへのポインターです。クエリの結果は、IWbemClassObject インターフェイスを通じて使用できるようになるクラス オブジェクトのインスタンスです。
WQL クエリで使用できる "AND" キーワードと "OR" キーワードの数には制限があります。 複雑なクエリで使用される WQL キーワードの数が多いと、WMI が WBEM_E_QUOTA_VIOLATION エラー コードを HRESULT 値として返すことがあります。 WQL キーワードの制限は、クエリの複雑さによって異なります。
要件
サポートされている最小のクライアント | Windows Vista |
サポートされている最小のサーバー | Windows Server 2008 |
対象プラットフォーム | Windows |
ヘッダー | wbemcli.h (Wbemidl.h を含む) |
Library | Wbemuuid.lib |
[DLL] | Fastprox.dll;Esscli.dll;FrameDyn.dll。FrameDynOS.dll;Ntevt.dll;Stdprov.dll;Viewprov.dll;Wbemcomn.dll;Wbemcore.dll;Wbemess.dll;Wbemsvc.dll;Wmipicmp.dll;Wmidcprv.dll;Wmipjobj.dll;Wmiprvsd.dll |