次の方法で共有


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
ストリーミング インストールとインテリジェント配信