> ## 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.

# Réorganisation dynamique des chunks

> Réorganisation dynamique des chunks

Lorsque l'installation d'un titre commence, le système d'installation acquiert et copie des *chunks*, c'est-à-dire des collections de fichiers à installer en tant que groupe, selon l'ordre par défaut que vous avez défini. Une fois les chunks nécessaires à l'exécution du titre installés, le titre peut fournir un ordre personnalisé pour l'installation des chunks restants, que le système d'installation traitera avant de revenir à l'ordre d'installation par défaut.

De cette manière, les titres peuvent contrôler l'ordre d'acquisition du contenu en réponse à diverses situations ou à différents types d'entrées des utilisateurs. Cette réorganisation dynamique peut réduire le temps que les utilisateurs passent à attendre l'installation du contenu, et leur permet de choisir ce qu'ils souhaitent avoir à disposition en premier.

Une fois l'ordre d'installation modifié, si des chunks sont nécessaires pour le gameplay ou pour l'utilisation du titre, celui-ci peut surveiller l'état de l'installation à l'aide de l'une des méthodes décrites dans [Installation en streaming : état](/fr/build/core-features/common/packaging/packaging-installstatus).

## Comment modifier l'ordre d'installation des chunks

Dans l'exemple de code suivant, un jeu a rapidement besoin d'accéder à un fichier pour permettre à l'utilisateur de continuer à jouer. La fonction **PrioritizeChunk** est définie et vérifie l'état d'installation actuel d'un chunk.

* Si le chunk n'est pas encore installé, la fonction demande au système de streaming d'installer ce chunk en premier, puis retourne un moniteur d'installation de la progression du chunk.

* Si le chunk est déjà installé, la fonction retourne un moniteur 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

- [XR-074 Perte de connectivité aux services XBOX et des partenaires](/fr-CA/publishing/certification/xr/xr-074.md)
- [Exigences XBOX testées lors de la certification pour les jeux sur console XBOX](/fr/publishing/certification/console-cert-tested-requirements.md)
- [Notes de version du SDK C++ PlayFab Multiplayer](/fr/services/playfab/multiplayer/lobby/lobby-matchmaking-sdks/lobby-and-matchmaking-release-notes.md)
- [Répertoire des rubriques NDA : liens actifs vers Microsoft Learn](/fr-CA/nda/nda-topic-directory.md)
- [XR-074 Perte de connectivité aux services XBOX et partenaires](/fr/publishing/certification/xr/xr-074.md)
