XPackageFindChunkAvailability
返回与指定的选择器匹配的区块集合的最低可用性。
语法
HRESULT XPackageFindChunkAvailability(
const char* packageIdentifier,
uint32_t selectorCount,
XPackageChunkSelector* selectors,
XPackageChunkAvailability* availability
)
参数
packageIdentifier _In_z_
类型:char*
唯一标识磁盘上安装的包的字符串。 有关包标识符的详细信息,请参阅管理和许可可下载内容 (DLC)。
selectorCount _In_
类型:uint32_t
selectors 参数中的选择器数。
selectors _In_reads_opt_(selectorCount)
类型:XPackageChunkSelector*
指定要检查的区块的选择器数组。
availability _Out_
类型:XPackageChunkAvailability*
在返回时,列出区块的可用性。
返回值
类型:HRESULT
HRESULT 成功或错误代码。
备注
注意
在时间敏感线程上调用此函数是不安全的。 有关详细信息,请参阅时间敏感线程。
XPackageFindChunkAvailability 采用一个区块选择器数组,查找关联的区块,然后返回这些区块的最低可用性。 可用性范围取决于以下值:
- 就绪:该区块已安装并且可以读取。
- 待处理:该区块尚未安装但将安装。
- 可安装:该区块将不安装,但可以下载它。
- 不可用:无法下载该区块。
以下示例接受赛车游戏的赛道名称,如果未安装赛道,则打印赛道的下载大小:
HRESULT ListDownloadSize(char* trackName)
{
XPackageChunkSelector selector;
selector.type = XPackageChunkSelectorType::Tag;
selector.tag = trackName;
char id[XPACKAGE_IDENTIFIER_MAX_LENGTH];
HRESULT hr = XPackageGetCurrentProcessPackageIdentifier(_countof(id), id);
if (FAILED(hr)) return hr;
XPackageChunkAvailability availability;
hr = XPackageFindChunkAvailability(id, 1, &selector, &availability);
if (FAILED(hr)) return hr;
if (availability == XPackageChunkAvailability::Installable)
{
uint64_t downloadSize;
hr = XPackageEstimateDownloadSize(id, 1, &selector, &downloadSize, nullptr);
if (FAILED(hr)) return hr;
printf("Download Size for track %s: %I64u\n", trackName, downloadSize);
}
return hr;
}
要求
头文件:XPackage.h
库:xgameruntime.lib
支持平台:Windows、Xbox One 系列主机和 Xbox Series 主机