> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# チャンクの動的な並べ替え

> チャンクの動的な並べ替え

タイトルのインストールが開始されると、インストール システムは、あなたが定義した既定の順序に従って、グループとしてインストールされるファイルのコレクションである *チャンク* を取得およびコピーします。タイトルの実行に必要なチャンクがインストールされた後、タイトルは残りのチャンクに対するカスタムのインストール順序を提供でき、インストール システムはそれを処理してから既定のインストール順序に戻ります。

このようにして、タイトルは、さまざまな状況やユーザーからのさまざまな種類の入力に応じてコンテンツの取得順序を制御できます。この動的な並べ替えにより、ユーザーがコンテンツのインストールを待つ時間を最小限に抑え、最初に利用可能にしたい内容をユーザーに選択させることができます。

インストール順序が変更された後、チャンクがゲームプレイやタイトルの使用に必要である場合は、[ストリーミング インストール: ステータス](/build/core-features/common/packaging/packaging-installstatus) に記載されている方法のいずれかを使用してインストールのステータスを監視できます。

## チャンクのインストール順序を変更する方法

次のコード例では、ユーザーがプレイを継続できるようにするために、ゲームがすぐにファイルへのアクセスを必要とします。**PrioritizeChunk** 関数が定義されており、チャンクの現在のインストール ステータスを確認します。

* チャンクがまだインストールされていない場合、関数はストリーミング システムに、そのチャンクを最初にインストールするよう要求し、そのチャンクの進行状況のインストール モニターを返します。

* チャンクがすでにインストールされている場合、関数は null モニターを返します。

```cpp theme={null}
template<> 
struct std::default_delete<XPackageInstallationMonitorHandle> { 
    typedef XPackageInstallationMonitorHandle pointer; 
    void operator()(XPackageInstallationMonitorHandle handle) const noexcept  
    {   
        XPackageCloseInstallationMonitorHandle(handle);  
    } 
}; 
 
HRESULT PrioritizeChunk(uint32_t chunkId, XPackageInstallationMonitorHandle* monitor) 
{ 
    char id[PACKAGE_IDENTIFIER_MAX_LENGTH]; 
 
    *monitor = nullptr; 
    RETURN_IF_FAILED(XPackageGetCurrentProcessPackageIdentifier(_countof(id), id)); 
 
    XPackageChunkSelector selector; 
    selector.type = XPackageChunkSelectorType::Chunk; 
    selector.chunk = chunkId; 
 
    XPackageInstallationMonitorHandle temp; 
    RETURN_IF_FAILED(XPackageCreateInstallationMonitor(id, 1, &selector, 1000, queue, &temp)); 
    std::unique_ptr<XPackageInstallationMonitorHandle> localMonitor(temp); 
 
    XPackageInstallationProgress progress; 
    XPackageGetInstallationProgress(localMonitor.get(), &progress); 
 
    if (!progress.completed) 
    { 
        RETURN_IF_FAILED(XPackageChangeChunkInstallOrder(id, 1, &selector)); 
        *monitor = localMonitor.release(); 
    } 
 
    return S_OK; 
} 
```


## Related topics

- [タイトル パッケージング、更新、およびストリーミング インストールのテスト](/ja-jp/build/core-features/common/packaging/title-packaging-streaming-install-testing.md)
- [Intelligent Delivery](/ja-jp/build/core-features/common/packaging/overviews/intelligentdelivery.md)
- [MSIXVC2 によるコンテンツ更新](/ja-jp/build/core-features/common/packaging/packaging-updates-msixvc2.md)
- [MSIXVC2 パッケージング概要](/ja-jp/build/core-features/common/packaging/overviews/packaging-msixvc2-overview.md)
- [Partner Center でフィーチャード統計を構成する](/ja-jp/publishing/game-publishing/how-to/data-platform-2013/how-to-configure-featured-stats.md)
