> ## 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.

# XPackageFindChunkAvailability

> XPackageFindChunkAvailability

# XPackageFindChunkAvailability

返回与指定选择器匹配的区块集合的最低可用性。

## 语法

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

### 参数

*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\_opt\_(selectorCount)\
类型：[XPackageChunkSelector\*](/reference/system/xpackage/structs/xpackagechunkselector)

指定要检查的区块的选择器数组。

*availability*   \_Out\_\
类型：[XPackageChunkAvailability\*](/reference/system/xpackage/enums/xpackagechunkavailability)

返回时，列出区块的可用性。

### 返回值

类型：HRESULT

HRESULT 成功或错误代码。

## 备注

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

**XPackageFindChunkAvailability** 接受一个区块选择器数组，查找相关的区块，然后返回这些区块的最低可用性。可用性根据以下值分级：

* Ready：区块已安装并可读取。
* Pending：区块尚未安装，但即将安装。
* Installable：区块不会被安装，但可以下载。
* Unavailable：区块无法下载。

以下示例接受赛车游戏的一个赛道名称，如果该赛道尚未安装，则打印该赛道的下载大小：

```cpp theme={null}
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 主机

## 概念性文档

* [智能交付：自定义标签说明符](/build/core-features/common/packaging/intelligentdelivery-custom)
* [智能交付：功能和配方](/build/core-features/common/packaging/intelligentdelivery-features-recipes)
* [智能交付：语言说明符](/build/core-features/common/packaging/intelligentdelivery-language)
* [时间敏感线程](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

- [Intelligent Delivery：自定义标签修饰符](/zh-CN/build/core-features/common/packaging/intelligentdelivery-custom.md)
- [Intelligent Delivery：features 与 recipes](/zh-CN/build/core-features/common/packaging/intelligentdelivery-features-recipes.md)
- [XPackage](/zh-CN/reference/system/xpackage/xpackage_members.md)
- [面向 GDK 的 Unity C# API 包装器](/zh-CN/build/gdk-and-engines/unity/unity-api-wrappers.md)
- [XPackageChunkAvailability](/zh-CN/reference/system/xpackage/enums/xpackagechunkavailability.md)
