> ## Documentation Index
> Fetch the complete documentation index at: https://docs.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](https://docs.xbox.com/ko/reference/system/xpackage/enums/xpackagekind.md)

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

*scope*   \_In\_\
형식: [XPackageEnumerationScope](https://docs.xbox.com/ko/reference/system/xpackage/enums/xpackageenumerationscope.md)

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

*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)를 참조하세요.

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

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

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

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

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

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

| 범위 | Franchise Game Hub | 허브 인식 게임 | 허브 비인식 게임 |
| - | - | - | - |
| ThisOnly | 이 Franchise Game Hub와 관련된 DLC | 이 허브 인식 게임과 관련된 DLC | 이 허브 비인식 게임과 관련된 DLC |
| ThisAndRelated | 이 Franchise Game Hub, 그 허브 인식 타이틀 및 모든 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: 언어 지정자](https://docs.xbox.com/ko/build/core-features/common/packaging/intelligentdelivery-language.md)
* [GDK 다운로드 가능한 콘텐츠(DLC) 패키지](https://docs.xbox.com/ko/build/core-features/common/packaging/packaging-downloadable-content-dlc.md)
* [시간에 민감한 스레드](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)
* [업데이트 확인](https://docs.xbox.com/ko/publishing/xstore-commerce/xstore-checking-updates.md)
* [다운로드 가능한 콘텐츠(DLC) 관리 및 라이선스](https://docs.xbox.com/ko/publishing/xstore-commerce/xstore-dlc.md)

## 함께 보기

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


## Related topics

- [XPackageGetPackageKind](https://docs.xbox.com/ko/reference/system/xpackage/functions/xpackagegetpackagekind.md)
- [XPackageDetails](https://docs.xbox.com/ko/reference/system/xpackage/structs/xpackagedetails.md)
- [XPackageEnumerationCallback](https://docs.xbox.com/ko/reference/system/xpackage/functions/xpackageenumerationcallback.md)
- [XPackageRegisterPackageInstalled](https://docs.xbox.com/ko/reference/system/xpackage/functions/xpackageregisterpackageinstalled.md)
- [XPackageChunkAvailabilityCallback](https://docs.xbox.com/ko/reference/system/xpackage/functions/xpackagechunkavailabilitycallback.md)
