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

インストール パッケージを調べ、指定されたセレクターに一致するすべてのチャンクの利用可能性を列挙します。

## Syntax

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

### Parameters

*packageIdentifier*   \_In\_z\_\
型: char\*

ディスク上のインストール済みパッケージを一意に識別する文字列。パッケージ識別子の詳細については、[ダウンロード可能なコンテンツ (DLC) の管理およびライセンス](https://learn.microsoft.com/gaming/gdk/docs/store/commerce/fundamentals/xstore-manage-and-license-optional-packages) を参照してください。

*type*   \_In\_\
型: [XPackageChunkSelectorType](/reference/system/xpackage/enums/xpackagechunkselectortype)

列挙する属性の種類。

*context*   \_In\_\
型: void\*

*callback* パラメーターで指定されたコールバックに渡すコンテキスト。

*callback*   \_In\_\
型: [XPackageChunkAvailabilityCallback\*](/reference/system/xpackage/functions/xpackagechunkavailabilitycallback)

完了時に呼び出されるコールバック。

### Return value

型: HRESULT

HRESULT の成功またはエラー コード。

## Remarks

<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;
}
```

## Requirements

**ヘッダー:** XPackage.h

**ライブラリ:** xgameruntime.lib

**サポートされているプラットフォーム:** Windows、XBOX One ファミリー本体および XBOX Series 本体

## Conceptual documentation

* [タイム センシティブ スレッド](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)

## See also

[XPackage](/reference/system/xpackage/xpackage_members)\
[ストリーミング インストールとインテリジェント デリバリー](/build/core-features/common/packaging/overviews/streaming_install-intelligent_delivery)


## Related topics

- [XPackageChunkAvailabilityCallback](/ja-jp/reference/system/xpackage/functions/xpackagechunkavailabilitycallback.md)
- [XPackage](/ja-jp/reference/system/xpackage/xpackage_members.md)
- [GDK 向け Unity C# API ラッパー](/ja-jp/build/gdk-and-engines/unity/unity-api-wrappers.md)
- [XPackageChunkAvailability](/ja-jp/reference/system/xpackage/enums/xpackagechunkavailability.md)
- [XPackageFindChunkAvailability](/ja-jp/reference/system/xpackage/functions/xpackagefindchunkavailability.md)
