XGameSaveEnumerateContainerInfoByName
Retrieves the container info for an XGameSaveProvider. Providing a prefix will cause the function to return only words which have that same prefix.
Syntax
HRESULT XGameSaveEnumerateContainerInfoByName(
XGameSaveProviderHandle provider,
const char* containerNamePrefix,
void* context,
XGameSaveContainerInfoCallback* callback
)
Parameters
provider _In_
Type: XGameSaveProviderHandle
XGameSaveProvider containing the XGameSaveContainerInfo.
containerNamePrefix _In_opt_z_
Type: char*
A prefix that will be used to search the list of containers for matching container names.
context _In_opt_
Type: void*
Pointer that will be passed into the callback function.
callback _In_
Type: XGameSaveContainerInfoCallback*
The callback function to run for every container that matches the prefix, return false to stop the enumeration. Use this function to collect the XGameSaveContainerInfo.
Return value
Type: HRESULT
Function result.
Remarks
Use this function to inspect what containers are available for a user. This may include data that is needed to show in UX. Enumerating this set will not cause a sync for a SyncOnDemand provider and will allow the caller to actually inspect the sync status via the needsSync field of XGameSaveContainerInfo. Any read of blob data or usage of an update context on a container that has needsSync set to true will force a sync and could potentially return various sync errors. You may use XGameSaveEnumerateContainerInfo if you do not need to specify a prefix for your enumerated containers. XGameSaveEnumerateContainerInfo will return the full list of available containers.
// 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);
}
}
Requirements
Header: XGameSave.h
Library: xgameruntime.lib
Supported platforms: Windows, Xbox One family consoles and Xbox Series consoles