XGameSaveEnumerateContainerInfoByName
检索 XGameSaveProvider 的容器信息。 提供前缀将导致函数仅返回具有该相同前缀的字词。
语法
HRESULT XGameSaveEnumerateContainerInfoByName(
XGameSaveProviderHandle provider,
const char* containerNamePrefix,
void* context,
XGameSaveContainerInfoCallback* callback
)
参数
provider _In_
类型:XGameSaveProviderHandle
包含 XGameSaveContainerInfo 的 XGameSaveProvider。
containerNamePrefix _In_opt_z_
类型:char*
将用于搜索容器列表以找到匹配的容器名称的前缀。
context _In_opt_
类型:void*
将传递到回调函数中的指针。
callback _In_
类型:XGameSaveContainerInfoCallback*
要为与前缀匹配的每个容器运行的回调函数,返回 false 可停止枚举。 使用此函数可收集 XGameSaveContainerInfo。
返回值
类型:HRESULT
函数结果。
备注
使用此函数可检查哪些容器适用于用户。 这可能包括在 UX 中显示所需的数据。 枚举此集合将不会导致针对 SyncOnDemand 提供程序的同步,并且将允许调用方通过 XGameSaveContainerInfo 的 needsSync 字段实际检查同步状态。 对于将 needsSync 设置为 true 的容器上更新上下文的 blob 数据或者用法的任何读取都将强制同步,并且可能会返回不同的同步错误。 如果您不需要为已枚举的容器指定前缀,则可以使用 XGameSaveEnumerateContainerInfo。 XGameSaveEnumerateContainerInfo 将返回可用容器的完整列表。
// Enumerate Container List by prefix, if no prefix is supplied it is
// the same as calling XGameSaveEnumerateContainerInfo.
// NOTE: this should be safe to call from a time critical thread
// but the we are at the mercy of the callback.
void Sample::_EnumerateContainerInfoByName(const char* prefix)
{
HRESULT hr = XGameSaveEnumerateContainerInfoByName(_provider, prefix, this,
[](const XGameSaveContainerInfo* container, void* context)
{
auto self = reinterpret_cast<Sample*>(context);
self->_UpdateContainerList(container);
return true;
});
if (FAILED(hr))
{
_HandleContainerErrors(prefix, hr);
}
}
要求
头文件:XGameSave.h
库:xgameruntime.lib
支持平台:Windows、Xbox One 系列主机和 Xbox Series 主机