XAsyncComplete
非同期プロバイダーのコールバック関数が完了し、結果を返すことができる状態を示します。
構文
void XAsyncComplete(
XAsyncBlock* asyncBlock,
HRESULT result,
size_t requiredBufferSize
)
パラメーター
asyncBlock _Inout_
型: XAsyncBlock*
XAsyncBegin に渡される XAsyncBlock へのポインター。
result _In_
型: HRESULT
コールバック関数によって実行された処理の結果。 処理がキャンセルされた場合は、E_ABORT
に設定します。 より多くの処理を行う必要がある場合は、E_PENDING
に設定します。 それ以外の場合は、適切な結果コードに設定します。
requiredBufferSize _In_
型: size_t
コールバック関数によって返されるデータ ペイロードの必要サイズ (バイト単位)。 コールバック関数がデータ ペイロードを返さない場合は、この値を 0 に設定します。 コールバック関数がエラーを返す場合、このパラメーターは無視されます。
戻り値
型: void
解説
注意
この関数は、時間依存のスレッドで呼び出すのに安全ではありません。 詳細については、「時間依存のスレッド」を参照してください。
この関数は、非同期処理を実行またはキャンセルするためにコールバック関数が呼び出されたときに呼び出されます。 この関数により、適切な結果コードが返されます。また、該当する場合は、データ ペイロードに関する情報が返されます。 通常、コールバック関数の XAsyncOp 操作コード、非同期処理、およびデータ ペイロードの組み合わせによって、この関数の呼び出し時に result および requiredBufferSize に指定する必要がある値が決まります。
コールバック関数が XAsyncOp::DoWork
操作コードで呼び出された場合は、コールバック関数が非同期処理を実行する必要があります。 コールバック関数がすべての非同期処理を完了した場合は、result を適切なエラーコードに設定します。 より多くの処理を行う必要がある場合は、result を E_PENDING
に設定します。 関数がデータ ペイロードを返す場合は、requiredBufferSize をデータ ペイロードを返すために必要なバッファーのサイズ (バイト単位) に設定します。それ以外の場合は、requiredBufferSize を 0 に設定します。
コールバック関数が XAsyncOp::Cancel
操作コードで呼び出された場合は、コールバック関数が非同期処理を取り消す必要があります。
result を E_ABORT
に設定し、requiredBufferSize をゼロに設定します。
要件
ヘッダー: XAsyncProvider.h
ライブラリ: xgameruntime.lib
サポートされているプラットフォーム: Windows、Xbox One ファミリー本体、Xbox Series 本体