[関数検出は、[要件] セクションで指定したオペレーティング システムで使用できます。 以降のバージョンでは変更または使用できない場合があります。]
IFunctionDiscovery::CreateInstanceQuery によって定義されたクエリを実行します。
構文
HRESULT Execute(
[out] IFunctionInstance **ppIFunctionInstance
);
パラメーター
[out] ppIFunctionInstance
要求された関数インスタンスを受け取る IFunctionInstance インターフェイス ポインターへのポインター。
戻り値
可能な戻り値には、次のものが含まれますが、これらに限定されません。
| リターン コード/値 | 説明 |
|---|---|
|
メソッドは正常に完了しました。 |
|
ppIFunctionInstance パラメーターは NULL です。 |
|
メソッドは、この操作を実行するために必要なメモリを割り当てることができません。 |
|
プロバイダーによって返される結果は、非同期通知によって返されます。 |
|
指定した ID で表される関数インスタンスがこのコンピューターに存在しません。 |
|
関数インスタンスに対応するキーが別のプロセスによって削除されたため、関数インスタンスを返できませんでした。 このエラーは、クエリ処理の実行中にキーが削除された場合、レジストリ プロバイダーによって返されます。 |
|
関数インスタンスに対応するキーが見つからなかったため、関数インスタンスを返できませんでした。 このエラーは、プロバイダーがインスタンス クエリの一致するインスタンスを見つけることができなかった場合に、レジストリ プロバイダーによって返されます。 |
定義済みのクエリは、階層化されたカテゴリのクエリ です。 定義済みのクエリが実行されると、関数インスタンスを返す各プロバイダーも HRESULT 値を返します。 プロバイダー HRESULT 値が集計され、 Execute メソッドによって返される値には、これらの集計結果が反映されます。 結果は次のように集計されます。
- すべてのプロバイダーがS_OKを返す場合、 Execute はS_OKを返します。
- 少なくとも 1 つのプロバイダーがE_PENDINGを返し、他のすべてのプロバイダーがS_OKまたはE_PENDINGを返す場合、 Execute は E_PENDINGを返します。
- すべてのプロバイダーがエラー値 (つまり、S_OKまたはE_PENDING以外の値) を返す場合、 Execute は最後にクエリを実行したネットワーク プロバイダーによって返されるエラー値を返します。 また、クライアントの IFunctionDiscoveryNotification コールバック ルーチンが IFunctionDiscovery::CreateInstanceCollectionQuery に提供された場合は、プロバイダーごとに OnError 通知が送信されます。 各 OnError 通知には、プロバイダーによって返される HRESULT が含まれます。
- 少なくとも 1 つのプロバイダーがエラー値を返し、他のすべてのプロバイダーがS_OKを返す場合、 Execute はS_OKを返します。 OnError 通知は、上記のように送信されます。
- 少なくとも 1 つのプロバイダーがエラー値を返し、少なくとも 1 つのプロバイダーがE_PENDINGを返す場合、 Execute はE_PENDINGを返します。 OnError 通知は、上記のように送信されます。
注釈
クエリ オブジェクトからデータを取得するには、クライアント プログラムによってこのメソッドを呼び出す必要があります。 このメソッドを呼び出すと、次の処理が実行されます。
- 関数インスタンスを取得します。
- クライアント プログラムの IFunctionDiscoveryNotification コールバック ルーチンのアドレスが IFunctionDiscovery ::CreateInstanceQuery に提供されている場合は、更新通知メカニズムを開始します。
同じクエリ オブジェクトで Execute が 2 回呼び出されると、2 番目のクエリが実行される前に最初のクエリが終了します。
要件
| 要件 | 値 |
|---|---|
| サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
| サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
| 対象プラットフォーム | Windows |
| ヘッダー | functiondiscoveryapi.h |
| [DLL] | FunDisc.dll |