次の方法で共有


XAsyncGetResult

非同期プロバイダーからの非同期呼び出しの結果を返します。

構文

HRESULT XAsyncGetResult(  
         XAsyncBlock* asyncBlock,  
         const void* identity,  
         size_t bufferSize,  
         void* buffer,  
         size_t* bufferUsed  
)  

パラメーター

asyncBlock _Inout_
型: XAsyncBlock*

非同期呼び出しに対して XAsyncBegin に渡された XAsyncBlock へのポインター。

identity _In_opt_
型: void*

省略可能。 非同期呼び出しの識別に使用できる任意のトークンへのポインター。 対応する XAsyncBegin 呼び出しの identity パラメーターに対して値が指定された場合、ここで同じポインターを指定する必要があります。

bufferSize _In_
型: size_t

buffer に指定した結果バッファーのサイズ (バイト単位) です。

buffer _Out_writes_bytes_to_opt_(bufferSize, *bufferUsed)
型: void*

結果バッファーへのポインター。

bufferUsed _Out_opt_
型: size_t*

省略可能。 buffer で指定した結果バッファーに書き込まれるバイト数が格納されているポインター。 この値は、XAsyncComplete が呼び出されたときに非同期プロバイダーによって指定された、requiredResultSize パラメーターの値として定義されます。

戻り値

型: HRESULT

正常に実行された場合は S_OK が返され、それ以外の場合はエラー コードが返されます。 エラー コードの一覧については、「エラー コード」を参照してください。

解説

非同期呼び出しにデータ ペイロードがある場合は、この関数を呼び出すことで、データ ペイロードを返します。 非同期呼び出しにデータ ペイロードが含まれていない場合、この関数を呼び出す必要はありません。 データ ペイロードのない非同期呼び出しに対してこの関数を呼び出すと、関数はエラー コード E_NOT_SUPPORTED を返します。

この非同期呼び出しの XAsyncBegin 関数の identity パラメーターに値が指定された場合、この関数の identity パラメーターにも同じ値を指定する必要があります。 そうしないと呼び出しに不一致が発生し、関数がエラー コード E_INVALIDARG を返します。

この関数が完了し、結果が buffer で指定された結果バッファーに返されると、asyncBlock で指定された XAsyncBlock が完了し、非同期呼び出しに関連付けられなくなります。

要件

ヘッダー: XAsyncProvider.h

ライブラリ: xgameruntime.lib

サポートされているプラットフォーム: Windows、Xbox One ファミリー本体、Xbox Series 本体

関連項目

XAsyncProvider のメンバー
XAsyncBegin
XAsyncComplete
非同期プログラミング モデル