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

# XGameSave

> XGameSave

# XGameSave

XGameSave API 旨在支持创建、加载、保存和管理与游戏相关的状态。它与之前实现的主要区别在于，它将提供一个扁平化 API，可访问异步编程模型，允许调用方控制 API 行为的线程处理和内存管理。

## 函数

| 函数                                                                                                                   | 说明                                                                                                                           |
| -------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| [XGameSaveBlobInfoCallback](/reference/system/xgamesave/functions/xgamesaveblobinfocallback)                         | 用于检索 [XGameSaveEnumerateBlobInfo](/reference/system/xgamesave/functions/xgamesaveenumerateblobinfo) 结果的回调函数。                 |
| [XGameSaveCloseContainer](/reference/system/xgamesave/functions/xgamesaveclosecontainer)                             | 关闭 XGameSaveContainer。                                                                                                       |
| [XGameSaveCloseProvider](/reference/system/xgamesave/functions/xgamesavecloseprovider)                               | 释放 XGameSaveProvider 持有的资源。                                                                                                  |
| [XGameSaveCloseUpdate](/reference/system/xgamesave/functions/xgamesavecloseupdate)                                   | 关闭 XGameSaveUpdate。                                                                                                          |
| [XGameSaveContainerInfoCallback](/reference/system/xgamesave/functions/xgamesavecontainerinfocallback)               | 对 [XGameSaveGetContainerInfo](/reference/system/xgamesave/functions/xgamesavegetcontainerinfo) 的调用的回调函数。                     |
| [XGameSaveCreateContainer](/reference/system/xgamesave/functions/xgamesavecreatecontainer)                           | 创建一个 XGameSaveContainer 句柄。                                                                                                  |
| [XGameSaveCreateUpdate](/reference/system/xgamesave/functions/xgamesavecreateupdate)                                 | 创建一个更新，稍后将通过调用 [XGameSaveSubmitUpdate](/reference/system/xgamesave/functions/xgamesavesubmitupdate) 提交。                      |
| [XGameSaveDeleteContainer](/reference/system/xgamesave/functions/xgamesavedeletecontainer)                           | 从云存储中删除 XGameSaveContainer。                                                                                                  |
| [XGameSaveDeleteContainerAsync](/reference/system/xgamesave/functions/xgamesavedeletecontainerasync)                 | 异步删除 XGameSaveContainer。                                                                                                     |
| [XGameSaveDeleteContainerResult](/reference/system/xgamesave/functions/xgamesavedeletecontainerresult)               | 检索 [XGameSaveDeleteContainerAsync](/reference/system/xgamesave/functions/xgamesavedeletecontainerasync) 调用的结果，使用此函数检查调用是否成功。 |
| [XGameSaveEnumerateBlobInfo](/reference/system/xgamesave/functions/xgamesaveenumerateblobinfo)                       | 检索 XGameSaveContainer 内容的 Blob 信息。                                                                                           |
| [XGameSaveEnumerateBlobInfoByName](/reference/system/xgamesave/functions/xgamesaveenumerateblobinfobyname)           | 检索 XGameSaveContainer 内容的 Blob 信息，仅限于与 blobNamePrefix 参数具有相同前缀的 Blob。                                                        |
| [XGameSaveEnumerateContainerInfo](/reference/system/xgamesave/functions/xgamesaveenumeratecontainerinfo)             | 检索 XGameSaveProvider 的容器信息。                                                                                                  |
| [XGameSaveEnumerateContainerInfoByName](/reference/system/xgamesave/functions/xgamesaveenumeratecontainerinfobyname) | 检索 XGameSaveProvider 的容器信息。                                                                                                  |
| [XGameSaveGetContainerInfo](/reference/system/xgamesave/functions/xgamesavegetcontainerinfo)                         | 检索 XGameSaveProvider 中容器的信息。                                                                                                 |
| [XGameSaveGetRemainingQuota](/reference/system/xgamesave/functions/xgamesavegetremainingquota)                       | 返回可使用 XGameSave API 存储的数据量。                                                                                                  |
| [XGameSaveGetRemainingQuotaAsync](/reference/system/xgamesave/functions/xgamesavegetremainingquotaasync)             | 异步返回可使用 XGameSave API 存储的数据量。                                                                                                |
| [XGameSaveGetRemainingQuotaResult](/reference/system/xgamesave/functions/xgamesavegetremainingquotaresult)           | 检索 [XGameSaveGetRemainingQuotaAsync](/reference/system/xgamesave/functions/xgamesavegetremainingquotaasync) 函数的结果。           |
| [XGameSaveInitializeProvider](/reference/system/xgamesave/functions/xgamesaveinitializeprovider)                     | 提供并初始化 XGameSave Provider 句柄。                                                                                                |
| [XGameSaveInitializeProviderAsync](/reference/system/xgamesave/functions/xgamesaveinitializeproviderasync)           | 以异步方式提供并初始化 XGameSave Provider 句柄。                                                                                           |
| [XGameSaveInitializeProviderResult](/reference/system/xgamesave/functions/xgamesaveinitializeproviderresult)         | 包含 [XGameSaveInitializeProviderAsync](/reference/system/xgamesave/functions/xgamesaveinitializeproviderasync) 调用的结果。         |
| [XGameSaveReadBlobData](/reference/system/xgamesave/functions/xgamesavereadblobdata)                                 | 读取容器的 Blob 数据。                                                                                                               |
| [XGameSaveReadBlobDataAsync](/reference/system/xgamesave/functions/xgamesavereadblobdataasync)                       | 以异步方式从 XGameSaveContainer 中读取 XGameSaveBlob 数据。                                                                              |
| [XGameSaveReadBlobDataResult](/reference/system/xgamesave/functions/xgamesavereadblobdataresult)                     | 检索 [XGameSaveReadBlobDataAsync](/reference/system/xgamesave/functions/xgamesavereadblobdataasync) 调用的结果。                     |
| [XGameSaveSubmitBlobDelete](/reference/system/xgamesave/functions/xgamesavesubmitblobdelete)                         | 将删除操作添加到游戏保存 XGameSaveUpdate。                                                                                                |
| [XGameSaveSubmitBlobWrite](/reference/system/xgamesave/functions/xgamesavesubmitblobwrite)                           | 将写入操作添加到 XGameSaveUpdate。                                                                                                    |
| [XGameSaveSubmitUpdate](/reference/system/xgamesave/functions/xgamesavesubmitupdate)                                 | 向 XGameSave 服务提交更新。更新容器内的 Blob。                                                                                              |
| [XGameSaveSubmitUpdateAsync](/reference/system/xgamesave/functions/xgamesavesubmitupdateasync)                       | 以异步方式向 XGameSave 服务提交更新。更新容器内的 Blob。                                                                                         |
| [XGameSaveSubmitUpdateResult](/reference/system/xgamesave/functions/xgamesavesubmitupdateresult)                     | 检索 [XGameSaveSubmitUpdateAsync](/reference/system/xgamesave/functions/xgamesavesubmitupdateasync) 调用的结果。                     |

## 结构

| 结构                                                                                   | 说明                                         |
| ------------------------------------------------------------------------------------ | ------------------------------------------ |
| [XGameSaveBlob](/reference/system/xgamesave/structs/xgamesaveblob)                   | XGameSave 存储的信息单位。位于 XGameSaveContainer 内。 |
| [XGameSaveBlobInfo](/reference/system/xgamesave/structs/xgamesaveblobinfo)           | 关于 XGameSaveBlob 的信息。                      |
| [XGameSaveContainerInfo](/reference/system/xgamesave/structs/xgamesavecontainerinfo) | 关于 XGameSaveContainer 的信息。                 |

## 错误代码

XGameSave API 可能返回以下错误代码。完整列表请参阅[错误代码](/reference/errorcodes)。有关详细的故障排除指南，请参阅[游戏保存调试](/build/core-features/common/game-save/game-saves-debugging)。

| 代码                                        | 值          | 说明                                                         |
| ----------------------------------------- | ---------- | ---------------------------------------------------------- |
| E\_GS\_INVALID\_CONTAINER\_NAME           | 0x80830001 | 容器名称无效。有效的容器名称字符包括大写/小写字母、数字、下划线和正斜杠。                      |
| E\_GS\_NO\_ACCESS                         | 0x80830002 | 由于游戏无权访问容器存储空间，因此操作失败。请检查 SCID 和 TitleId 是否正确配置。           |
| E\_GS\_OUT\_OF\_LOCAL\_STORAGE            | 0x80830003 | 设备没有足够的存储容量来保存游戏。                                          |
| E\_GS\_USER\_CANCELED                     | 0x80830004 | 用户取消了保存游戏的下载。                                              |
| E\_GS\_UPDATE\_TOO\_BIG                   | 0x80830005 | 保存更新的大小过大。XGameSave 更新的总大小必须小于 GS\_MAX\_BLOB\_SIZE（16 MB）。 |
| E\_GS\_QUOTA\_EXCEEDED                    | 0x80830006 | 已超出此用户的游戏存储配额。                                             |
| E\_GS\_PROVIDED\_BUFFER\_TOO\_SMALL       | 0x80830007 | 提供给 API 的缓冲区过小。                                            |
| E\_GS\_BLOB\_NOT\_FOUND                   | 0x80830008 | 找不到指定的 Blob。                                               |
| E\_GS\_NO\_SERVICE\_CONFIGURATION         | 0x80830009 | 未正确为连接的存储配置游戏。请检查 SCID 是否正确，以及游戏是否已在合作伙伴中心配置。              |
| E\_GS\_CONTAINER\_NOT\_IN\_SYNC           | 0x8083000A | 容器尚未同步。请确保在提交更新之前 XGameSave 容器已同步。                         |
| E\_GS\_CONTAINER\_SYNC\_FAILED            | 0x8083000B | 容器的同步失败。                                                   |
| E\_GS\_USER\_NOT\_REGISTERED\_IN\_SERVICE | 0x8083000C | 用户的 MSA 尚未成为 XBOX services 帐户。                             |
| E\_GS\_HANDLE\_EXPIRED                    | 0x8083000D | 函数使用的句柄已过期，必须重新获取。                                         |
| E\_GS\_ASYNC\_FUNCTION\_REQUIRED          | 0x8083000E | 此同步函数正在时间敏感线程上调用，存在死锁风险。请改用异步实现。                           |
| E\_GS\_PROVIDER\_MISMATCH                 | 0x8083000F | 游戏混合使用 XGameSave 和 XGameSaveFiles 调用，这是不支持的。               |

## 概念性文档

* [游戏保存概述](/build/core-features/common/game-save/game-saves-overview)
* [XGameSave 指南](/build/core-features/common/game-save/xgamesave)
* [游戏保存调试](/build/core-features/common/game-save/game-saves-debugging)

## 另请参阅

[系统 API 参考](/reference/system/gc-reference-system-toc)


## Related topics

- [Save](/zh-CN/reference/system/Wrappers/classes/provider/methods/xgamesave_wrapper_provider_save.md)
- [XGameSave API 概述](/zh-CN/build/core-features/common/game-save/xgamesave.md)
- [XGameSaveBlob](/zh-CN/reference/system/xgamesave/structs/xgamesaveblob.md)
- [XGameSaveFiles](/zh-CN/reference/system/xgamesavefiles/xgamesavefiles_members.md)
- [XGameSave Wrapper reference index and member list](/zh-CN/reference/system/Wrappers/xgamesave_wrapper_members.md)
