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

# XPackageEnumerateChunkAvailability

> XPackageEnumerateChunkAvailability

# XPackageEnumerateChunkAvailability

檢查安裝套件，並列舉符合指定選取器之所有區塊的可用性。

## 語法

```cpp theme={null}
HRESULT XPackageEnumerateChunkAvailability(  
         const char* packageIdentifier,  
         XPackageChunkSelectorType type,  
         void* context,  
         XPackageChunkAvailabilityCallback* callback  
)  
```

### 參數

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

唯一識別磁碟上已安裝套件的字串。如需套件識別碼的詳細資訊，請參閱[管理可下載內容 (DLC) 及授權](/zh-TW/publishing/xstore-commerce/xstore-dlc)。

*type*   \_In\_\
類型：[XPackageChunkSelectorType](/zh-TW/reference/system/xpackage/enums/xpackagechunkselectortype)

要列舉的屬性類型。

*context*   \_In\_\
類型：void\*

要傳遞給 *callback* 參數中所指定回呼的內容。

*callback*   \_In\_\
類型：[XPackageChunkAvailabilityCallback\*](/zh-TW/reference/system/xpackage/functions/xpackagechunkavailabilitycallback)

完成時要呼叫的回呼。

### 傳回值

類型：HRESULT

HRESULT 成功或錯誤碼。

## 備註

<Note>在時間敏感的執行緒上呼叫此函式並不安全。如需詳細資訊，請參閱[時間敏感的執行緒](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)。</Note>

**XPackageEnumerateChunkAvailability** 用於檢查套件，並列舉特定類型之所有選取器的可用性。例如，以 **XPackageChunkSelectorType::Language** 呼叫此函式，會列舉套件中的所有語言屬性及其可用性。

在下列範例中，遊戲會顯示其支援的所有語言，並允許使用者安裝或移除語言。為此，遊戲會查詢套件，以判斷有哪些語言可用，以及這些語言是否已安裝。

```cpp theme={null}
HRESULT GetPackageLanguages(_Out_ std::map<std::string, bool>& languages)
{
    char id[XPACKAGE_IDENTIFIER_MAX_LENGTH];

    HRESULT hr = XPackageGetCurrentProcessPackageIdentifier(_countof(id), id);
    if (FAILED(hr)) return hr;

    hr = XPackageEnumerateChunkAvailability(id,
        XPackageChunkSelectorType::Language, &languages,
        [](void* context, const XPackageChunkSelector* sel, XPackageChunkAvailability av)
    {
        auto languages = static_cast<std::map<std::string, bool>*>(context);
        switch (av)
        {
        case XPackageChunkAvailability::Ready:
        case XPackageChunkAvailability::Pending:
            languages->emplace(sel->language, true);
            break;

        case XPackageChunkAvailability::Installable:
            languages->emplace(sel->language, false);
            break;

        case XPackageChunkAvailability::Unavailable:
        default:
            break;
        }
        return true;
    });

    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](/zh-TW/reference/system/xpackage/xpackage_members)\
[串流安裝與 Intelligent Delivery](/zh-TW/build/core-features/common/packaging/overviews/streaming_install-intelligent_delivery)


## Related topics

- [XPackageEnumerateChunkAvailability](/reference/system/xpackage/functions/xpackageenumeratechunkavailability.md)
- [XPackageChunkAvailabilityCallback](/reference/system/xpackage/functions/xpackagechunkavailabilitycallback.md)
- [XPackage](/reference/system/xpackage/xpackage_members.md)
- [XPackageChunkAvailability](/reference/system/xpackage/enums/xpackagechunkavailability.md)
