다음을 통해 공유


XPackageChangeChunkInstallOrder

선택한 청크를 먼저 설치하도록 지정합니다.

구문

HRESULT XPackageChangeChunkInstallOrder(  
        const char* packageIdentifier,  
        uint32_t selectorCount,  
        XPackageChunkSelector* selectors
)  

매개 변수

packageIdentifier _In_z_
형식: char*

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

selectorCount _In_
형식: uint32_t

selectors 매개 변수의 선택기 수입니다.

selectors _In_reads_(selectorCount)
형식: XPackageChunkSelector*

영향받는 청크 유형을 지정하는 선택기의 배열입니다.

반환 값

형식: HRESULT

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

설명

참고 항목

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

XPackageChangeChunkInstallOrder는 지정된 선택기에서 선택한 청크를 업데이트하여 설치 큐에 첫 번째로 배치합니다. 여기에는 청크 ID의 배열 뿐만 아니라 선택기가 사용될 수 있습니다. 여기에서 더 복잡한 선택기를 전달할 수 있으며 이를 구성하는 청크가 모두 큐의 맨 앞으로 푸시됩니다.

청크가 설치되지 않은 경우 뿐만 아니라 언제든지 XPackageChangeChunkInstallOrder를 호출할 수 있습니다. 청크가 이미 설치되어 있는 경우 XPackageChangeChunkInstallOrder는 이를 무시합니다. 지능형 전송으로 인해 설치가 전혀 예약되지 않은 청크를 제공하는 경우에도 마찬가지입니다.

다음 예제에서는 사용자가 계속 재생하려면 “soon”이라는 파일에 액세스해야 합니다. PrioritizeChunk 함수가 정의되어 청크의 현재 설치 상태를 확인합니다. 청크가 아직 설치되지 않은 경우 함수는 스트리밍 시스템에 청크를 설치하고 청크의 진행 상황을 모니터링할 수 있는 설치 모니터를 반환합니다. 청크가 이미 설치되어 있으면 함수는 null 모니터를 반환합니다.

HRESULT PrioritizeChunk( 
    XTaskQueueHandle queue, uint32_t chunkId, XPackageInstallationMonitorHandle* monitor) 
{ 
    char id[XPACKAGE_IDENTIFIER_MAX_LENGTH]; 
 
    *monitor = nullptr; 
    HRESULT hr = XPackageGetCurrentProcessPackageIdentifier(_countof(id), id); 
    if (FAILED(hr)) return hr; 
 
    XPackageChunkSelector selector; 
    selector.type = XPackageChunkSelectorType::Chunk; 
    selector.chunkId = chunkId; 
 
    hr = XPackageCreateInstallationMonitor(id, 1, &selector, 1000, queue, monitor); 
 
    if (SUCCEEDED(hr)) 
    { 
        XPackageInstallationProgress progress; 
        XPackageGetInstallationProgress(*monitor, &progress); 
    }

    if (!progress.completed) 
    { 
        hr = XPackageChangeChunkInstallOrder(id, 1, &selector); 
    } 
 
    if (progress.completed || FAILED(hr)) 
    { 
        XPackageCloseInstallationMonitorHandle(*monitor); 
        *monitor = nullptr; 
    } 
 
    return hr; 
} 

요구 사항

헤더: XPackage.h

라이브러리: xgameruntime.lib

지원되는 플랫폼: Windows, Xbox One 패밀리 콘솔 및 Xbox Series 콘솔

참고 항목

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