XPackageUninstallChunks

卸载匹配指定的选择器的区块。

语法

HRESULT XPackageUninstallChunks(  
         const char* packageIdentifier,  
         uint32_t selectorCount,  
         XPackageChunkSelector* selectors  
)  

参数

packageIdentifier _In_z_
类型:char*

唯一标识磁盘上安装的包的字符串。 有关包标识符的详细信息,请参阅管理和许可可下载内容 (DLC)

selectorCount _In_
类型:uint32_t

selectors 参数中的选择器数。

selectors _In_reads_(selectorCount)
类型:XPackageChunkSelector*

指定要卸载的区块的选择器数组。

不支持仅使用整数 ID 指定要卸载的区块;尝试这样做将导致 XPackageUninstallChunks 返回值 E_INVALIDARG。 要指定要卸载的区块,请提供选择器的其他信息,如语言或标记。

返回值

类型:HRESULT

HRESULT 成功或错误代码。

备注

注意

在时间敏感线程上调用此函数是不安全的。 有关详细信息,请参阅时间敏感线程

XPackageUninstallChunks 删除匹配指定的安装选择器的区块。 它不删除包正常运行所需的区块。 例如,您不能删除为当前运行的游戏语言提供资产所需的区块。

删除区块时不会停止游戏。 游戏负责关闭区块中它删除的文件和它不再访问的文件的所有文件句柄。

在下面的示例中,XPackageUninstallChunks 用于卸载标记为“BigMaps”的地图包:

HRESULT UninstallBigMaps()
{
    char id[XPACKAGE_IDENTIFIER_MAX_LENGTH];
    HRESULT hr = XPackageGetCurrentProcessPackageIdentifier(_countof(id), id);
    if (FAILED(hr)) return hr;

    XPackageChunkSelector selector;
    selector.type = XPackageChunkSelectorType::Tag;
    selector.tag = "BigMaps";

    hr = XPackageUninstallChunks(id, 1, &selector);
    return hr;
}

要求

头文件:XPackage.h

库:xgameruntime.lib

支持平台:Windows、Xbox One 系列主机和 Xbox Series 主机

另请参阅

XPackage
流式安装和智能交付