IEnumWbemClassObject::NextAsync メソッド (wbemcli.h)
シンクへのオブジェクトの制御された非同期取得が必要な場合は、 NextAsync メソッドを使用します。 通常の非同期取得 ( IWbemServices::ExecQueryAsync の呼び出しなど) により、 IWbemObjectSink の呼び出し元の実装にオブジェクトが制御不能に配信されます。 このメソッドは、コンポーネントがオブジェクトの配信を制御する場合に役立ちます。
構文
HRESULT NextAsync(
[in] ULONG uCount,
[in] IWbemObjectSink *pSink
);
パラメーター
[in] uCount
要求されているオブジェクトの数。
[in] pSink
オブジェクトを受け取るシンク。 シンクは呼び出し元によって実装される必要があります。 オブジェクトの各バッチが要求されると、それらは Indicate メソッドの pSink パラメーターに配信され、その後、SetStatus メソッドの pSink パラメーターを最後に呼び出します。 シンクを使用してオブジェクトを配信する場合、このメソッドは、配信するオブジェクトの数が要求よりも少ない場合でも、 WBEM_S_NO_ERRORを返します。 ただし、残っているオブジェクトがなくなった場合、pSink パラメーターは無視されます (SetStatus の pSink パラメーターの呼び出しは行われません)。 代わりに、このメソッドは WBEM_S_FALSEを返します。
戻り値
NextAsync メソッドは、メソッド呼び出しの状態を示す HRESULT を返します。 次の一覧は、 HRESULT 内に含まれる値の一覧です。
解説
COM 関数 GetErrorInfo の呼び出しでは、エラーに関する詳細情報が提供されます。 ネットワークの問題によって Windows Management へのリモート接続が失われると、COM 固有のエラー コードが返される場合もあります。
この呼び出しはすぐに返され、シンクへの配信はバックグラウンドで行われます。 1 つ以上のスレッドからこのメソッドに対して複数の呼び出しが行われた場合、それらの呼び出しは論理的にキューに入れられ、呼び出しとオブジェクト配信の順序は保持されます。 1 つ以上のスレッド ブロックからこのメソッドを複数回呼び出した場合、このメソッドの以前の呼び出しに関連するすべてのシンク オブジェクトが処理されるまでは返されません。 Reset の呼び出しは、以前の呼び出しの結果として現在進行中のオブジェクトの配信には影響しません。 Reset メソッドでは、オブジェクト シーケンスの先頭から新しい呼び出しのみが開始されます。
要求されたオブジェクトの数がすぐに使用可能な場合、関数は WBEM_S_NO_ERRORを返します。 要求されたオブジェクトの数より少ない場合は、使用可能なオブジェクトが返され、 WBEM_S_NO_ERROR が返されます。 オブジェクトの残りの部分は、ユーザー指定のシンクによって配信されます。
オブジェクトが使用可能になると、呼び出し元による IWbemObjectSink::Indicate の実装は、オブジェクトを配信するために 0 回以上呼び出されます。 その後、iWbemObjectSink::SetStatus を呼び出し、uCount アイテムが返された場合は値が WBEM_S_NO_ERRORになります。
使用可能なオブジェクトが要求された数より少ない場合は、使用可能なオブジェクトに対して Indicate が呼び出されます。 その後、SetStatus が WBEM_S_FALSE の値で呼び出されるか、エラーが発生した場合はエラー コードで呼び出されます。
要求された数のオブジェクトが配信された場合、最終的なオブジェクトの後に、状態コードが WBEM_S_NO_ERROR の SetStatus の呼び出しが続きます。 要求された数のオブジェクトを配信する前に列挙が完了した場合、 SetStatus メソッドの状態コードは WBEM_S_FALSE。
使用可能なオブジェクトがない場合、 Indicate は呼び出されません。 ただし、 SetStatus の最後の呼び出しは常に実行され、操作全体の状態が示されます。
コールバックはクライアントが必要とするのと同じ認証レベルで返されない可能性があるため、非同期通信の代わりに半同期を使用することをお勧めします。 非同期通信が必要な場合は、「 メソッドの呼び出し」を参照してください。
メソッドを半同期的に使用する方法の詳細については、「 IEnumWbemClassObject::Next 」および「 メソッドの呼び出し」を参照してください。
要件
サポートされている最小のクライアント | Windows Vista |
サポートされている最小のサーバー | Windows Server 2008 |
対象プラットフォーム | Windows |
ヘッダー | wbemcli.h (Wbemidl.h を含む) |
Library | Wbemuuid.lib |
[DLL] | Fastprox.dll |