メインコンテンツへスキップ
PlayFab がストレージにデータを書き込む必要があるときに呼び出す、ストレージ書き込みハンドラー。XAsyncProvider として実装します。

構文

パラメーター

context   _In_opt_ void* PFPlatformLocalStorageSetHandlers に渡した PFLocalStorageHooks 構造体の context メンバー。nullptr にすることができます。PlayFab はこのポインターを所有しません。 key   _In_z_ const char* データを識別します。通常はファイル パスです。このキーの下にデータを書き込みます。 dataSize   _In_ size_t data のサイズ (バイト単位)。 data   _In_reads_bytes_(dataSize) void const* 書き込むデータ。 async   _Inout_ XAsyncBlock* 書き込み操作の XAsyncBlock。

戻り値

型: HRESULT async で非同期操作を開始した場合 (たとえば XAsyncBegin を使用して) は、S_OK を返します。ハンドラーがエラーの HRESULT を返すと、PlayFab はその HRESULT でストレージ操作を失敗させ、async の完了を待機しません。そのため、エラーを返すのは async で操作を開始していない場合だけにしてください。ストレージ操作自体の結果は、XAsyncComplete で async を完了することで報告します。

解説

このハンドラーをインストールするには、他の 2 つのストレージ ハンドラーと共に PFLocalStorageHooks 構造体の write メンバーに設定し、PFInitialize を呼び出す前に、その構造体を PFPlatformLocalStorageSetHandlers に渡します。3 つのハンドラーのいずれかが nullptr の場合、PFPlatformLocalStorageSetHandlers は E_INVALIDARG を返します。カスタム ハンドラーを設定しない場合、PlayFab は cstdio および std::fstream オブジェクトに基づく既定の実装を使用します。 書き込みの結果と結果サイズ 0 を渡して、XAsyncComplete で async を完了します。 既定の実装は、key の既存のデータに data を追加します。置き換えはしません。PlayFab はこの動作に依存しています。PFTraceEnableTraceToFile でファイルへのトレース出力が有効になっている場合、PlayFab はトレース ファイルを一度クリアした後、各トレース メッセージを同じキーへの個別の書き込みとして書き込みます。ハンドラーでも追加するようにしてください。そうしないと、トレース ファイルには最後のメッセージしか残りません。 data は操作が完了するまで有効です。その後も必要な場合はコピーしてください。 PlayFab は、ストレージ操作を開始したスレッド上でこのハンドラーをインラインで呼び出す場合があるため、どのスレッドで実行されるかに依存しないでください。async のキューは、PlayFab が PFLocalStorageHooks の queueHandle メンバーから派生させたキューです。queueHandle が nullptr の場合、PlayFab は PFInitialize に渡したバックグラウンド キューから、またはそのキューも nullptr だった場合はプロセス タスク キューから、キューを派生させます。派生したキューのワーク コールバックと完了コールバックは、どちらも派生元のキューのワーク ポートで実行されます。 PlayFab はストレージ操作を一度に 1 つずつ実行し、現在の操作が完了した後でのみ次の操作を開始します。 PlayFab は、async で XAsyncCancel を呼び出すことで、保留中の操作をキャンセルできます。ストレージ操作をキャンセルできる場合は、プロバイダーで XAsyncOp::Cancel を処理してください。 key 引数と async 引数は PlayFab が所有し、操作が完了するまで有効です。context 引数はこの保証の対象外です。

要件

ヘッダー: PFPlatform.h ライブラリ: PlayFabCore.lib サポートされているプラットフォーム: Windows、XBOX One ファミリー本体および XBOX Series 本体

関連項目

PFPlatform のメンバー PFLocalStorageHooks PFPlatformLocalStorageSetHandlers XAsyncProvider PFPlatformLocalStorageReadAsyncHandler PFPlatformLocalStorageClearAsyncHandler
最終更新日 2026年11月5日