> ## 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.

# XGameSaveCreateContainer

> XGameSaveCreateContainer

# XGameSaveCreateContainer

创建 XGameSaveContainer 句柄。

## Syntax

```cpp theme={null}
HRESULT XGameSaveCreateContainer(  
         XGameSaveProviderHandle provider,  
         const char* containerName,  
         XGameSaveContainerHandle* containerContext  
)  
```

### Parameters

*provider*   \_In\_\
类型：XGameSaveProviderHandle

将创建容器的 XGameSaveProvider 的句柄。

*containerName*   \_In\_z\_\
类型：char\*

要创建的容器的名称。

容器名称的路径部分（一直到并包括最后一个正斜杠）的有效字符包括大写字母 (A-Z)、小写字母 (a-z)、数字 (0-9)、下划线 (\_) 和正斜杠 (/)。路径部分可以为空。

文件名部分（最后一个正斜杠之后的所有内容）的有效字符包括大写字母 (A-Z)、小写字母 (a-z)、数字 (0-9)、下划线 (\_)、句点 (.) 和连字符 (-)。文件名不能为空、不能以句点结尾，也不能包含两个连续的句点。

容器名称的最大长度为 256 个字符。

*containerContext*   \_Outptr\_result\_nullonfailure\_\
类型：XGameSaveContainerHandle\*

此函数调用将返回的 XGameSaveContainer 的句柄。

### Return value

类型：HRESULT

函数结果。如果 containerName 无效，函数将返回 E\_GS\_INVALID\_CONTAINER\_NAME (0x80830001)。

## Remarks

<Note>此函数在时间敏感型线程上调用是不安全的。有关详细信息，请参阅[时间敏感型线程](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)。</Note>

<Note>XGameSave API 要求你的标题正确配置其标题 ID 和服务配置 ID (SCID) 才能工作。</Note>
有关这些必需 ID 的详细信息，请参阅[为 XBOX Live 开发设置沙盒](/services/xbox-services/fundamentals/sandboxes/live-setting-up-sandboxes)。你的游戏必须在合作伙伴中心中启用 XBOX Live。

如果没有正确配置 SCID 和标题 ID，XSaveGame API 调用将失败，并返回以下错误代码：

E\_GS\_NO\_ACCESS - 0x80830002 - 因为标题无权访问容器存储空间，所以操作失败。

XGameSaveCreateContainer 既可以用于创建新容器，也可以使用名称作为标识符访问以前创建的容器。游戏保存容器以 [XGameSaveBlob](/reference/system/xgamesave/structs/xgamesaveblob) 的形式保存有关玩家的信息。Blob 是与玩家关联的特定数据，该数据包括名称和值以及其他有助于读取 Blob 数据的信息。你可以在 [XGameSaveContainerInfo](/reference/system/xgamesave/structs/xgamesavecontainerinfo) 结构中找到 **XGameSaveContainer** 的组成。

<Note>只有为容器调用了 [XGameSaveSubmitUpdate](/reference/system/xgamesave/functions/xgamesavesubmitupdate) 或 [XGameSaveSubmitUpdateAsync](/reference/system/xgamesave/functions/xgamesavesubmitupdateasync) 之后，容器才会最终确定。在调用更新 API 之前，该容器不会出现在 [XGameSaveEnumerateContainerInfoByName](/reference/system/xgamesave/functions/xgamesaveenumeratecontainerinfobyname) 的结果中。</Note>

## 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](/reference/system/xgamesave/xgamesave_members)\
[XGameSaveContainerInfo](/reference/system/xgamesave/structs/xgamesavecontainerinfo)\
[XGameSaveBlob](/reference/system/xgamesave/structs/xgamesaveblob)\
[调试游戏保存](/build/core-features/common/game-save/game-saves-debugging)


## Related topics

- [XGameSaveCloseContainer](/zh-CN/reference/system/xgamesave/functions/xgamesaveclosecontainer.md)
- [XGameSaveGetContainerInfo](/zh-CN/reference/system/xgamesave/functions/xgamesavegetcontainerinfo.md)
- [XGameSave API 概述](/zh-CN/build/core-features/common/game-save/xgamesave.md)
- [XGameSave](/zh-CN/reference/system/xgamesave/xgamesave_members.md)
- [面向 GDK 的 Unity C# API 包装器](/zh-CN/build/gdk-and-engines/unity/unity-api-wrappers.md)
