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

# Reordenação dinâmica de chunks

> Reordenação dinâmica de chunks

Quando a instalação de um título começa, o sistema de instalação adquire e copia *chunks*, coleções de arquivos a serem instalados como um grupo, de acordo com a ordem padrão definida por você. Depois que os chunks necessários para a execução do título forem instalados, o título poderá fornecer uma ordem personalizada para a instalação dos chunks restantes, que será processada pelo sistema de instalação antes de ele retornar à ordem de instalação padrão.

Dessa forma, os títulos podem controlar a ordem de aquisição do conteúdo em resposta a várias situações diferentes ou tipos de entrada dos usuários. Essa reordenação dinâmica pode minimizar o tempo que os usuários passam esperando a instalação do conteúdo e lhes oferece a opção de escolher o que desejam ter disponível primeiro.

Depois que a ordem de instalação for alterada, se os chunks forem necessários para a jogabilidade ou para o uso do título, ele poderá monitorar o status da instalação usando um dos métodos descritos em [Instalação por streaming: status](/pt-BR/build/core-features/common/packaging/packaging-installstatus).

## Como alterar a ordem em que os chunks são instalados

No código de exemplo a seguir, um jogo precisa acessar um arquivo em breve para permitir que o usuário continue jogando. A função **PrioritizeChunk** é definida e verifica o status atual de instalação de um chunk.

* Se o chunk ainda não estiver instalado, a função solicita que o sistema de streaming instale esse chunk primeiro e, em seguida, retorna um monitor de instalação do progresso do chunk.

* Se o chunk já estiver instalado, a função retorna um monitor nulo.

```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

- [Reordenación dinámica de fragmentos](/es/build/core-features/common/packaging/packaging-chunkreordering.md)
- [Entrada de latencia dinámica](/es/build/core-features/common/input/advanced/input-synchronization.md)
- [Depuración de proyectos de XBOX con Visual Studio](/es/tools/tools-console/visualstudio/debugging-with-visualstudio.md)
- [Invitaciones de PlayFab Party y el modelo de seguridad](/es/services/playfab/multiplayer/networking/concepts-invitations-security-model.md)
- [Estados de energía dinámicos (DPS)](/es/build/game-principles/sustainability/dynamic-power-states.md)
