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

# XPackageEnumeratePackages

> XPackageEnumeratePackages

# XPackageEnumeratePackages

이미 설치되어 있거나 설치 중이고 호출 프로세스와 관련된 패키지를 찾습니다.

## 구문

```cpp theme={null}
HRESULT XPackageEnumeratePackages(  
         XPackageKind kind,  
         XPackageEnumerationScope scope,  
         void* context,  
         XPackageEnumerationCallback* callback  
)  
```

### 매개 변수

*kind*   \_In\_\
형식: [XPackageKind](/reference/system/xpackage/enums/xpackagekind)

열거할 설치 패키지의 유형입니다.

*scope*   \_In\_\
형식: [XPackageEnumerationScope](/reference/system/xpackage/enums/xpackageenumerationscope)

설치 패키지의 범위입니다.

*context*   \_In\_opt\_\
형식: void\*

*callback* 매개 변수에 지정된 콜백에 전달할 컨텍스트입니다.

*callback*   \_In\_\
형식: XPackageEnumerationCallback\*

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

### 반환 값

형식: HRESULT

HRESULT 성공 또는 오류 코드입니다.

## 설명

<Note>이 함수는 시간에 민감한 스레드에서 호출해서는 안전하지 않습니다. 자세한 내용은 [시간에 민감한 스레드](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)를 참조하세요.</Note>

**XPackageEnumeratePackages**를 사용하면 이미 설치되어 있거나 설치 중이고 호출 프로세스와 관련된 패키지를 찾을 수 있습니다. 이 함수는 콘텐츠 패키지와 앱 패키지를 모두 찾을 수 있습니다. XPackageDetails 구조체를 통해 설치에 대한 세부 정보를 제공합니다.

패키지가 아직 설치 중인 경우 **installing** 속성이 true로 설정되며, 설치 모니터를 만들어 패키지 식별자로 설치 진행률을 모니터링할 수 있습니다.

일반적인 설치 큐 알림은 없으며, 진행 중인 항목을 표시하고 추적하려면 [XPackageEnumeratePackages](/reference/system/xpackage/functions/xpackageenumeratepackages)를 사용하는 것이 좋습니다. 또한 설치를 중지, 시작 또는 취소하는 API도 없습니다. 게임의 관점에서는 설치가 자체적으로 처리되어야 합니다. 오류는 자동으로 재시도되며 게임에는 표시되지 않습니다.

[XPackageKind::Game](/reference/system/xpackage/enums/xpackagekind) 값으로 호출된 API의 출력은 [XPackageEnumerationScope](/reference/system/xpackage/enums/xpackageenumerationscope) 값에 따라 다음과 같습니다.

| 범위             | 프랜차이즈 게임 허브                                          | 허브 인식 게임                       | 허브 비인식 게임                      |
| -------------- | ---------------------------------------------------- | ------------------------------ | ------------------------------ |
| ThisOnly       | 프랜차이즈 게임 허브만                                         | 허브 인식 게임만                      | 허브 비인식 게임만                     |
| ThisAndRelated | 프랜차이즈 게임 허브, 이와 연결된 모든 허브 인식 게임 및 모든 RelatedProducts | 허브 인식 게임 및 모든 RelatedProducts  | 허브 비인식 게임 및 모든 RelatedProducts |
| ThisPublisher  | 현재 프로세스와 동일한 게시자에 속하는 모든 게임 제품                       | 현재 프로세스와 동일한 게시자에 속하는 모든 게임 제품 | 현재 프로세스와 동일한 게시자에 속하는 모든 게임 제품 |

[XPackageKind::Content](/reference/system/xpackage/enums/xpackagekind) 값으로 호출된 API의 출력은 [XPackageEnumerationScope](/reference/system/xpackage/enums/xpackageenumerationscope) 값에 따라 다음과 같습니다.

| 범위             | 프랜차이즈 게임 허브                                                   | 허브 인식 게임                                                      | 허브 비인식 게임                                                     |
| -------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- |
| ThisOnly       | 이 프랜차이즈 게임 허브와 관련된 DLC                                        | 이 허브 인식 게임과 관련된 DLC                                           | 이 허브 비인식 게임과 관련된 DLC                                          |
| ThisAndRelated | 이 프랜차이즈 게임 허브, 그 허브 인식 타이틀 및 모든 RelatedProducts와 관련된 DLC      | 이 허브 인식 게임 및 모든 RelatedProducts와 관련된 DLC                      | 이 허브 비인식 게임 및 모든 RelatedProducts와 관련된 DLC                     |
| ThisPublisher  | 현재 프로세스와 동일한 게시자의 기본 게임과 관련된 모든 DLC(동일 게시자 또는 다른 게시자의 DLC 포함) | 현재 프로세스와 동일한 게시자의 기본 게임과 관련된 모든 DLC(동일 게시자 또는 다른 게시자의 DLC 포함) | 현재 프로세스와 동일한 게시자의 기본 게임과 관련된 모든 DLC(동일 게시자 또는 다른 게시자의 DLC 포함) |

예제:

```cpp theme={null}
bool CALLBACK ListDlcCallback(
    void* /* context */,
    const XPackageDetails* details)
{
    printf("Found dlc: %s\n", details->displayName);
    return true; // 열거를 계속함
}

HRESULT ListDlc()
{
    HRESULT hr = XPackageEnumeratePackages(
        XPackageKind::Content,                      /* 콘텐츠 패키지(DLC)를 찾음 */
        XPackageEnumerationScope::ThisAndRelated,   /* 이 게임 및 관련 게임에 대해 */
        nullptr, ListDlcCallback);
    return hr;
}
```

## 요구 사항

**헤더:** XPackage.h

**라이브러리:** xgameruntime.lib

**지원 플랫폼:** Windows, XBOX One 제품군 콘솔 및 XBOX Series 콘솔

## 개념 문서

* [Intelligent Delivery: 언어 지정자](/build/core-features/common/packaging/intelligentdelivery-language)
* [GDK 다운로드 가능한 콘텐츠(DLC) 패키지](/build/core-features/common/packaging/packaging-downloadable-content-dlc)
* [시간에 민감한 스레드](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)
* [업데이트 확인](https://learn.microsoft.com/gaming/gdk/docs/store/commerce/fundamentals/xstore-checking-for-updates)
* [다운로드 가능한 콘텐츠(DLC) 관리 및 라이선스](https://learn.microsoft.com/gaming/gdk/docs/store/commerce/fundamentals/xstore-manage-and-license-optional-packages)

## 함께 보기

[XPackage](/reference/system/xpackage/xpackage_members)\
[프랜차이즈 게임 허브](https://learn.microsoft.com/gaming/gdk/docs/store/franchise-game-hubs)\
[PC 및 XBOX One용 다운로드 가능 콘텐츠 패키지(DLC)를 만들고 사용하는 방법](/build/core-features/common/packaging/packaging-downloadable-content-dlc)


## Related topics

- [XPackageDetails](/ko/reference/system/xpackage/structs/xpackagedetails.md)
- [XPackageEnumerationCallback](/ko/reference/system/xpackage/functions/xpackageenumerationcallback.md)
- [XPackageRegisterPackageInstalled](/ko/reference/system/xpackage/functions/xpackageregisterpackageinstalled.md)
- [XPackageChunkAvailabilityCallback](/ko/reference/system/xpackage/functions/xpackagechunkavailabilitycallback.md)
- [XPackageMountWithUiAsync](/ko/reference/system/xpackage/functions/xpackagemountwithuiasync.md)
