> ## 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) 관리 및 라이선스](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)

완료 시 호출할 콜백입니다.

### 반환 값

형식: 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](/reference/system/xpackage/xpackage_members)\
[스트리밍 설치 및 Intelligent Delivery](/build/core-features/common/packaging/overviews/streaming_install-intelligent_delivery)


## Related topics

- [XPackageChunkAvailabilityCallback](/ko/reference/system/xpackage/functions/xpackagechunkavailabilitycallback.md)
- [XPackage](/ko/reference/system/xpackage/xpackage_members.md)
- [GDK용 Unity C# API 래퍼](/ko/build/gdk-and-engines/unity/unity-api-wrappers.md)
- [XPackageChunkAvailability](/ko/reference/system/xpackage/enums/xpackagechunkavailability.md)
- [XPackageFindChunkAvailability](/ko/reference/system/xpackage/functions/xpackagefindchunkavailability.md)
