XGameSaveEnumerateContainerInfoByName

检索 XGameSaveProvider 的容器信息。 提供前缀将导致函数仅返回具有该相同前缀的字词。

语法

HRESULT XGameSaveEnumerateContainerInfoByName(  
         XGameSaveProviderHandle provider,  
         const char* containerNamePrefix,  
         void* context,  
         XGameSaveContainerInfoCallback* callback  
)  

参数

provider _In_
类型:XGameSaveProviderHandle

包含 XGameSaveContainerInfoXGameSaveProvider

containerNamePrefix _In_opt_z_
类型:char*

将用于搜索容器列表以找到匹配的容器名称的前缀。

context _In_opt_
类型:void*

将传递到回调函数中的指针。

callback _In_
类型:XGameSaveContainerInfoCallback*

要为与前缀匹配的每个容器运行的回调函数,返回 false 可停止枚举。 使用此函数可收集 XGameSaveContainerInfo

返回值

类型:HRESULT

函数结果。

备注

使用此函数可检查哪些容器适用于用户。 这可能包括在 UX 中显示所需的数据。 枚举此集合将不会导致针对 SyncOnDemand 提供程序的同步,并且将允许调用方通过 XGameSaveContainerInfo 的 needsSync 字段实际检查同步状态。 对于将 needsSync 设置为 true 的容器上更新上下文的 blob 数据或者用法的任何读取都将强制同步,并且可能会返回不同的同步错误。 如果您不需要为已枚举的容器指定前缀,则可以使用 XGameSaveEnumerateContainerInfoXGameSaveEnumerateContainerInfo 将返回可用容器的完整列表。

// 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 主机

另请参阅

XGameSave
XGameSaveEnumerateContainerInfo
游戏保存错误