> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# XPackageChangeChunkInstallOrder

> XPackageChangeChunkInstallOrder

# XPackageChangeChunkInstallOrder

指定要优先安装的选定区块。

## 语法

```cpp theme={null}
HRESULT XPackageChangeChunkInstallOrder(  
        const char* packageIdentifier,  
        uint32_t selectorCount,  
        XPackageChunkSelector* selectors
)  
```

### 参数

*packageIdentifier*   \_In\_z\_\
类型：char\*

唯一标识磁盘上已安装程序包的字符串。有关程序包标识符的详细信息，请参阅[管理和许可可下载内容 (DLC)](https://learn.microsoft.com/gaming/gdk/docs/store/commerce/fundamentals/xstore-manage-and-license-optional-packages)。

*selectorCount*   \_In\_\
类型：uint32\_t

*selectors* 参数中的选择器数。

*selectors*   \_In\_reads\_(selectorCount)\
类型：[XPackageChunkSelector\*](/reference/system/xpackage/structs/xpackagechunkselector)

指定要影响的区块类型的选择器数组。

### 返回值

类型：HRESULT

HRESULT 成功或错误代码。

## 备注

<Note>此函数在时间敏感线程上调用不安全。有关详细信息，请参阅[时间敏感线程](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)。</Note>

**XPackageChangeChunkInstallOrder** 将由指定选择器选中的区块更新为在安装队列中排在最前面。它可以接受选择器，而不仅仅是区块 ID 数组。你可以在此处传递更复杂的选择器，构成它们的所有区块都将被推到队列的前面。

你可以随时调用 **XPackageChangeChunkInstallOrder**，而不仅在区块尚未安装时。如果区块已经安装，**XPackageChangeChunkInstallOrder** 会忽略它们。如果由于智能交付的原因所提供的区块根本不计划安装，也是如此。

在下面的示例中，为了让用户继续游玩，游戏必须访问名为 “soon” 的文件。定义了函数 PrioritizeChunk，用于检查区块的当前安装状态。如果区块尚未安装，该函数会请求流式系统安装它，并返回一个可以监视区块进度的安装监视器。如果区块已经安装，该函数返回空监视器。

```cpp theme={null}
HRESULT PrioritizeChunk( 
    XTaskQueueHandle queue, uint32_t chunkId, XPackageInstallationMonitorHandle* monitor) 
{ 
    char id[XPACKAGE_IDENTIFIER_MAX_LENGTH]; 
 
    *monitor = nullptr; 
    HRESULT hr = XPackageGetCurrentProcessPackageIdentifier(_countof(id), id); 
    if (FAILED(hr)) return hr; 
 
    XPackageChunkSelector selector; 
    selector.type = XPackageChunkSelectorType::Chunk; 
    selector.chunkId = chunkId; 
 
    hr = XPackageCreateInstallationMonitor(id, 1, &selector, 1000, queue, monitor); 
 
    if (SUCCEEDED(hr)) 
    { 
        XPackageInstallationProgress progress; 
        XPackageGetInstallationProgress(*monitor, &progress); 
    }

    if (!progress.completed) 
    { 
        hr = XPackageChangeChunkInstallOrder(id, 1, &selector); 
    } 
 
    if (progress.completed || FAILED(hr)) 
    { 
        XPackageCloseInstallationMonitorHandle(*monitor); 
        *monitor = nullptr; 
    } 
 
    return hr; 
} 
```

## 要求

**头文件：** XPackage.h

**库：** xgameruntime.lib

**支持的平台：** Windows、XBOX One 系列主机和 XBOX Series 主机

## 概念性文档

* [时间敏感线程](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)

## 另请参阅

[XPackage](/reference/system/xpackage/xpackage_members)\
[流式安装和智能交付](/build/core-features/common/packaging/overviews/streaming_install-intelligent_delivery)


## Related topics

- [XPackage](/zh-CN/reference/system/xpackage/xpackage_members.md)
- [XPackageInstallChunks](/zh-CN/reference/system/xpackage/functions/xpackageinstallchunks.md)
- [XPackageInstallChunksAsync](/zh-CN/reference/system/xpackage/functions/xpackageinstallchunksasync.md)
- [XPackageInstallChunksResult](/zh-CN/reference/system/xpackage/functions/xpackageinstallchunksresult.md)
- [XR-129 智能交付内容管理](/zh-CN/publishing/certification/xr/xr-129.md)
