다음을 통해 공유


XPackageInstallChunks

청크 설치를 시작합니다.

구문

HRESULT XPackageInstallChunks(  
         const char* packageIdentifier,  
         uint32_t selectorCount,  
         XPackageChunkSelector* selectors,  
         uint32_t minimumUpdateIntervalMs,  
         bool suppressUserConfirmation,  
         XTaskQueueHandle queue,  
         XPackageInstallationMonitorHandle* installationMonitor  
)  

매개 변수

packageIdentifier _In_z_
형식: char*

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

selectorCount _In_
형식: uint32_t

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

selectors _In_reads_(selectorCount)
형식: XPackageChunkSelector*

설치할 청크를 지정하는 선택기 배열입니다.

minimumUpdateIntervalMs _In_
형식: uint32_t

업데이트 사이의 간격(밀리초)입니다.

suppressUserConfirmation _In_
형식: bool

설치할 청크가 미리 설정된 크기를 초과하면 확인 프롬프트가 표시됩니다. suppressUserConfirmation이 true이면 프롬프트가 표시되지 않으며 사용자가 승인 한 것처럼 설치가 진행됩니다. 이를 통해 게임은 자체 UI를 제공할 수 있습니다. 게임이 이를 사용하는 경우, XPackageEstimateDownloadSize를 호출하여 사용자에게 제공할 크기를 가져옵니다. XPackageEstimateDownloadSize는 또한 프롬프트가 표시될 만큼 크기가 충분한지를 나타내는 부울을 반환합니다. 다운로드 확인이 필요하다면 해당 UI를 사용하여 게임을 표시하거나 XPackageInstallChunks가 표시하도록 해야 합니다.

queue _In_opt_
형식: XTaskQueueHandle

작업이 수행될 비동기 큐입니다.

installationMonitor _Out_
형식: XPackageInstallationMonitorHandle*

반환 시, 선택기와 일치하는 청크 설치를 모니터하는 설치 모니터에 대한 핸들이 포함됩니다.

반환 값

형식: HRESULT

HRESULT 성공 또는 오류 코드입니다.
설치가 거부된 경우 취소 오류를 반환합니다.

비고

참고 항목

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

청크 설치에는 사용자에게 다운로드 크기를 허용할지 묻는 메시지가 포함될 수 있습니다.

  • 이 API의 동기 버전을 사용하는 경우 사용자가 다운로드를 수락하거나 거부할 때까지 API가 차단됩니다. 사용자가 거부하면 취소 오류 E_ABORT와 함께 호출이 실패합니다. 이렇게 하면 설치 상태를 모니터링하는 데 사용할 수 있는 설치 모니터가 반환됩니다. XPackageCloseInstallationMonitorHandle을 호출하여 모니터를 최종적으로 닫혀 있어야 합니다.
  • suppressUserConfirmation을 true로 설정하면 사용자에게 다운로드를 묻는 메시지를 표시하는 사용자 지정 UI를 제공할 수 있습니다.

이 예제는 "BigMaps"태그에 해당하는 청크를 설치합니다.

void CALLBACK BigMapsInstallProgress(
    void* /* context */,
    XPackageInstallationMonitorHandle monitor)
{
    XPackageInstallationProgress progress;
    XPackageGetInstallationProgress(monitor, &progress);
    if (progress.completed)
    {
        printf("BigMaps Installed\n");
        XPackageCloseInstallationMonitorHandle(monitor);
    }
}

HRESULT InstallBigMaps(XTaskQueueHandle queue)
{
    char id[XPACKAGE_IDENTIFIER_MAX_LENGTH];
    HRESULT hr = XPackageGetCurrentProcessPackageIdentifier(_countof(id), id);
    if (FAILED(hr)) return hr;

    XPackageChunkSelector selector;
    selector.type = XPackageChunkSelectorType::Tag;
    selector.tag = "BigMaps";

    XPackageInstallationMonitorHandle monitor;
    hr = XPackageInstallChunks(id, 1, &selector, 1000, false, queue, &monitor);

    if (SUCCEEDED(hr))
    {
        XTaskQueueRegistrationToken token;
        hr = XPackageRegisterInstallationProgressChanged(
            monitor,
            nullptr,
            BigMapsInstallProgress,
            &token);

        if (FAILED(hr))
        {
            XPackageCloseInstallationMonitorHandle(monitor);
        }
    }

    return hr;
}

요구 사항

헤더: XPackage.h

라이브러리: xgameruntime.lib

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

참고 항목

XPackage