XGameSave
XGameSave API 旨在支持创建、加载、保存和管理与游戏相关的状态。它与之前实现的主要区别在于,它将提供一个扁平化 API,可访问异步编程模型,允许调用方控制 API 行为的线程处理和内存管理。函数
结构
| 结构 | 说明 |
|---|---|
| XGameSaveBlob | XGameSave 存储的信息单位。位于 XGameSaveContainer 内。 |
| XGameSaveBlobInfo | 关于 XGameSaveBlob 的信息。 |
| XGameSaveContainerInfo | 关于 XGameSaveContainer 的信息。 |
错误代码
XGameSave API 可能返回以下错误代码。完整列表请参阅错误代码。有关详细的故障排除指南,请参阅游戏保存调试。| 代码 | 值 | 说明 |
|---|---|---|
| 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 调用,这是不支持的。 |
