> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# XGameSaveSubmitBlobWrite

> XGameSaveSubmitBlobWrite

# XGameSaveSubmitBlobWrite

XGameSaveUpdate に書き込みアクションを追加します。

## Syntax

```cpp theme={null}
HRESULT XGameSaveSubmitBlobWrite(  
         XGameSaveUpdateHandle updateContext,  
         const char* blobName,  
         const uint8_t* data,  
         size_t byteCount  
)  
```

### Parameters

*updateContext*   \_In\_\
型: XGameSaveUpdateHandle

BLOB の書き込み先となる **XGameSaveUpdate** へのハンドル。

*blobName*   \_In\_z\_\
型: char\*

書き込む BLOB の名前。BLOB 名のサイズは GS\_MAX\_BLOB\_NAME\_SIZE バイトを超えてはなりません。

*data*   \_In\_reads\_bytes\_(byteCount)\
型: uint8\_t\*

BLOB に書き込むデータ。

*byteCount*   \_In\_\
型: size\_t

BLOB に書き込むデータのサイズ。BLOB データのサイズは GS\_MAX\_BLOB\_SIZE バイトを超えてはなりません。

> [!NOTE]
>
> BLOB データのサイズが GS\_MAX\_BLOB\_SIZE に制限されるのと同様に、更新全体も GS\_MAX\_BLOB\_SIZE に制限されます。更新に GS\_MAX\_BLOB\_SIZE の BLOB が含まれる場合、追加の更新は別の更新要求として行う必要があります。

### Return value

型: HRESULT

関数の結果。

## Remarks

> [!NOTE]
>
> この関数は、時間的制約のあるスレッドで呼び出すには安全ではありません。詳細については、[時間的制約のあるスレッド](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)を参照してください。

この呼び出しを行う前に、[XGameSaveCreateUpdate](https://docs.xbox.com/ja-jp/reference/system/xgamesave/functions/xgamesavecreateupdate.md) を正常に呼び出す必要があります。

この API のストレージ部分は、ゲームから永続化されたストレージへのデータ転送を安全かつ信頼性が高くトランザクション処理可能な方法で簡単に行えるように設計されています。コンテナーの基となるデータは常に一貫した状態を保つ必要があるため、操作全体がアトミックに成功または失敗するようにします。BLOB データの一部がコンテナー内の他のデータと不整合を起こすような部分的な更新は望ましくありません。これを実現するために、BLOB の書き込みや削除を送信する更新コンテキストを提供し、準備が整うとコンテキスト全体を送信します。1 つの更新コンテキストでは、BLOB あたり 1 つの変更/削除しか書き込めない点に注意してください。実際には次のようになります。

[XGameSaveSubmitBlobWrite](https://docs.xbox.com/ja-jp/reference/system/xgamesave/functions/xgamesavesubmitblobwrite.md) および [XGameSaveSubmitBlobDelete](https://docs.xbox.com/ja-jp/reference/system/xgamesave/functions/xgamesavesubmitblobdelete.md) を使用して、コンテナー内の BLOB に対して実行する書き込みおよび削除アクションを XGameSaveUpdate に登録します。更新は [XGameSaveSubmitUpdate](https://docs.xbox.com/ja-jp/reference/system/xgamesave/functions/xgamesavesubmitupdate.md) を呼び出すことで完了します。

使用例については、[XGameSaveCreateUpdate の例](https://docs.xbox.com/ja-jp/reference/system/xgamesave/functions/xgamesavecreateupdate.md#example) を参照してください。

## Requirements

**ヘッダー:** XGameSave.h

**ライブラリ:** xgameruntime.lib

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

## Conceptual documentation

* [時間的制約のあるスレッド](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)

## See also

[XGameSave](https://docs.xbox.com/ja-jp/reference/system/xgamesave/xgamesave_members.md)\
[XGameSaveCreateUpdate](https://docs.xbox.com/ja-jp/reference/system/xgamesave/functions/xgamesavecreateupdate.md)\
[XGameSaveSubmitUpdate](https://docs.xbox.com/ja-jp/reference/system/xgamesave/functions/xgamesavesubmitupdate.md)\
[XGameSaveSubmitBlobDelete](https://docs.xbox.com/ja-jp/reference/system/xgamesave/functions/xgamesavesubmitblobdelete.md)\
[Debugging Game Saves](https://docs.xbox.com/ja-jp/build/core-features/common/game-save/game-saves-debugging.md)


## Related topics

- [XGameSaveSubmitBlobDelete](https://docs.xbox.com/ja-jp/reference/system/xgamesave/functions/xgamesavesubmitblobdelete.md)
- [XGameSaveSubmitUpdate](https://docs.xbox.com/ja-jp/reference/system/xgamesave/functions/xgamesavesubmitupdate.md)
- [XGameSaveSubmitUpdateAsync](https://docs.xbox.com/ja-jp/reference/system/xgamesave/functions/xgamesavesubmitupdateasync.md)
- [XGameSaveCreateUpdate](https://docs.xbox.com/ja-jp/reference/system/xgamesave/functions/xgamesavecreateupdate.md)
- [XGameSave API の概要](https://docs.xbox.com/ja-jp/build/core-features/common/game-save/xgamesave.md)
