다음을 통해 공유


XPackageEnumerateChunkAvailability

설치 패키지를 검사하고 지정된 선택기와 일치하는 모든 청크의 가용성을 열거합니다.

구문

HRESULT XPackageEnumerateChunkAvailability(  
         const char* packageIdentifier,  
         XPackageChunkSelectorType type,  
         void* context,  
         XPackageChunkAvailabilityCallback* callback  
)  

매개 변수

packageIdentifier _In_z_
형식: char*

디스크에 설치된 패키지를 고유하게 식별하는 문자열입니다. 패키지 식별자에 대한 자세한 내용은 DLC(다운로드 가능한 콘텐츠 관리 및 라이선스)를참조하세요.

type _In_
형식: XPackageChunkSelectorType

열거할 특성의 형식입니다.

context _In_
형식: void*

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

callback _In_
형식: XPackageChunkAvailabilityCallback*

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

반환 값

형식: HRESULT

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

설명

참고 항목

이 함수는 시간에 민감한 스레드에서 호출하는 것이 안전하지 않습니다. 자세한 내용은 시간에 민감한 스레드를 참조하세요.

XPackageEnumerateChunkAvailability는 패키지를 검사하고 특정 유형의 모든 선택기의 가용성을 열거하는 데 사용됩니다. 예를 들어, XPackageChunkSelectorType::Language를 사용하여 이를 호출하면 패키지의 모든 언어 특성과 가용성이 함께 열거됩니다.

아래 예제에서 게임은 지원되는 모든 언어를 표시하고 사용자가 언어를 설치 또는 제거할 수 있도록 허용합니다. 이를 위해 게임은 패키지를 쿼리하여 사용 가능한 언어와 설치 여부를 결정합니다.

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 콘솔

참고 항목

XPackage
스트리밍 설치 및 지능형 전송