XPackageEstimateDownloadSize
计算与指定的安装选择器匹配的区块的下载大小。
语法
HRESULT XPackageEstimateDownloadSize(
const char* packageIdentifier,
uint32_t selectorCount,
XPackageChunkSelector* selectors,
uint64_t* downloadSize,
bool* shouldPresentUserConfirmation
)
参数
packageIdentifier _In_z_
类型:char*
唯一标识磁盘上安装的包的字符串。 有关包标识符的详细信息,请参阅管理和许可可下载内容 (DLC)。
selectorCount _In_
类型:uint32_t
selectors 参数中的选择器数。
selectors _In_reads_(selectorCount)
类型:XPackageChunkSelector*
指定要对其执行操作的区块的选择器数组。
downloadSize _Out_
类型:uint64_t*
在返回时,包含指定的安装选择器的下载大小。
shouldPresentUserConfirmation _Out_opt_
类型:bool*
如果下载要求用户确认,则返回 true;否则返回 false。
返回值
类型:HRESULT
HRESULT 成功或错误代码。
备注
注意
在时间敏感线程上调用此函数是不安全的。 有关详细信息,请参阅时间敏感线程。
如果提供,则当估计的下载大小大到足以提示用户接受下载大小时,shouldPresentUserConfirmation 参数将设置为 true。
以下示例接受赛车游戏的赛道名称,如果未安装赛道,则打印赛道的下载大小:
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 主机