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
非同期プログラミング モデル