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

# Armazenamento local

> Armazenamento local

Quatro tipos de armazenamento local estão acessíveis no console XBOX One:

* Armazenamento local temporário
* Dados de jogo instalados
* Partição de rascunho do desenvolvedor
* Armazenamento local persistente

| Tipo de armazenamento | Local |
| - | - |
| Dados de jogo instalados | G:\\ |
| Armazenamento local temporário | T:\\ |
| Partição de rascunho do desenvolvedor | D:\\ |
| Armazenamento local persistente | Chame [XPersistentLocalStorageGetPathSize](/pt-BR/reference/system/xpersistentlocalstorage/functions/xpersistentlocalstoragegetpathsize) e [XPersistentLocalStorageGetPath](/pt-BR/reference/system/xpersistentlocalstorage/functions/xpersistentlocalstoragegetpath) para obter o tamanho do caminho e os dados. |
| Conteúdo para download | Chame [XPackageMount](/pt-BR/reference/system/xpackage/functions/xpackagemount) para montar o DLC e [XPackageGetMountPath](/pt-BR/reference/system/xpackage/functions/xpackagegetmountpath) para obter o caminho. |

**XR-133: Limitações de gravação no armazenamento local**

<Note>
  Títulos executados no XBOX Series S, XBOX Series X ou em quaisquer
</Note>

outros consoles da mesma família de consoles não devem gravar mais de 1 GiB de dados no
Armazenamento Local Persistente (PLS) ou no Armazenamento Local Temporário em uma janela móvel de 5 minutos. Títulos
que excederem 1 GiB de gravações não serão aprovados nos testes de certificação. Os desenvolvedores podem verificar
as capturas de temporização do PIX em busca de avisos sobre quando o limite de gravação foi excedido. Além disso, os títulos podem
monitorar suas estatísticas de gravação em tempo de execução chamando [XPackageGetWriteStats](/pt-BR/reference/system/xpackage/functions/xpackagegetwritestats).

**Armazenamento local temporário**
O armazenamento local temporário é exposto aos títulos como *unidade T*. O armazenamento temporário pode ser acessado enquanto o
título está em execução usando */x:/title* em qualquer comando [XtfFileIO](/pt-BR/reference/tools/xtf/xtffileio/xtffileio-xbox-microsoft-n).
O armazenamento local temporário permite o armazenamento e a recuperação remota de arquivos temporários, como
arquivos de log. Os arquivos gravados no armazenamento local temporário só têm disponibilidade garantida enquanto um
título está em execução. Não há garantia de que os dados gravados na unidade T: serão mantidos de
uma inicialização do jogo para outra. O armazenamento temporário pode ser excluído em algum momento após o título
ser encerrado.

O armazenamento local temporário também tem os seguintes recursos:

* 2 GB de armazenamento dedicado
* O conteúdo é excluído após o encerramento do título.
* O conteúdo persiste durante a suspensão e a retomada, incluindo o Quick Resume.

**Dados de jogo instalados**
O local dos dados de jogo instalados do título em execução no momento é mapeado para a
*unidade G*. Esse volume é somente leitura na exibição do jogo em execução ao usar builds empacotados.

**Partição de rascunho do desenvolvedor**
A partição de rascunho do desenvolvedor é exposta como *unidade D*. A partição de rascunho
do desenvolvedor é um armazenamento local para uso somente durante o desenvolvimento. Você deve remover na compilação todas as referências
a ela no modo de varejo para evitar possíveis problemas.

**Armazenamento Local Persistente**
Os títulos podem solicitar acesso ao Armazenamento Local Persistente (PLS) como parte de seu manifesto.

Esse espaço de armazenamento destina-se a ser usado como um cache de longo prazo para armazenar dados que não sejam salvamentos de jogo, como
replays e gravações renderizadas personalizadas de jogabilidade. O PLS não foi projetado para ser um espaço principal de armazenamento
de dados. Ele nunca deve ser usado para salvamentos de jogo, atualizações de conteúdo ou quaisquer outros dados que precisem
existir para que o título seja executado. Em vez disso, armazene os salvamentos de jogo usando a API Connected Storage ou,
opcionalmente para títulos somente online, usando o Title Storage dos XBOX services ou um serviço de armazenamento em nuvem
hospedado pelo editor.

O PLS tem as seguintes características:

* Específico do título: esse espaço de armazenamento pode ser acessado somente pelo título que o solicitou.
* Específico do console: esse espaço de armazenamento é sempre criado em um XVD específico do
  console (mesmo que o título esteja instalado em uma unidade externa) e não pode ser usado em outro
  console.
* Alocação garantida: o sistema garante que o espaço seja alocado antes que o título
  tenha permissão para ser iniciado. Se não houver espaço suficiente disponível no disco rígido, o usuário será solicitado a liberar
  espaço para permitir que o título seja executado.
* Controlado pelo usuário: o espaço de armazenamento pode ser excluído pelos usuários no shell do sistema. O sistema
  nunca exclui automaticamente nenhum item do espaço.
* Vinculado ao tempo de vida da instalação do título: quando um título é desinstalado, o espaço de armazenamento local
  associado também é removido. Se o título for reinstalado, nenhum dos dados existentes anteriormente será
  restaurado.
* Resiliente e resistente a adulterações: o espaço de armazenamento é criptografado e tem a integridade verificada para que
  os dados salvos pelo título não possam ser adulterados.

Para solicitar o PLS, adicione a seguinte marcação ao MicrosoftGame.config como filho de \<Game>.

```xml theme={null}
<?xml version="1.0" encoding="utf-8"?>
<Game configVersion="1">
    <!-- snip -->
    <PersistentLocalStorage><SizeMB>1024</SizeMB></PersistentLocalStorage>
</Game>
```

Para adquirir espaço de armazenamento local persistente, chame [XPersistentLocalStorageGetPathSize](/pt-BR/reference/system/xpersistentlocalstorage/functions/xpersistentlocalstoragegetpathsize)
e [XPersistentLocalStorageGetPath](/pt-BR/reference/system/xpersistentlocalstorage/functions/xpersistentlocalstoragegetpath) para obter o tamanho do caminho e os dados, o que retorna o caminho do
armazenamento persistente do título. A quantidade total de espaço disponível é determinada pelo que o
título solicitou na declaração de armazenamento local do MicrosoftGame.config.

Se o título usar uma atualização de conteúdo para aumentar o tamanho do espaço de armazenamento local persistente
solicitado, o espaço de armazenamento anterior será excluído e seu conteúdo será perdido durante a atualização.

**Armazenamento Local Persistente compartilhável**

Os títulos podem optar por compartilhar seu Armazenamento Local Persistente como somente leitura com outros títulos. As relações que permitem que um título leia o PLS de outro título são descritas abaixo:

| Produto que compartilha o PLS | Produtos que leem o PLS compartilhável |
| - | - |
| Hub de jogos da franquia | Todos os jogos compatíveis com hub que dependem desse hub de jogos da franquia e todos os jogos que têm relações [RelatedProduct](/pt-BR/reference/system/microsoftgameconfig/elements/microsoftgameconfig-element-relatedproduct) com esse hub de jogos da franquia. |
| Jogo compatível com hub | O hub de jogos da franquia associado e todos os jogos que têm relações [RelatedProduct](/pt-BR/reference/system/microsoftgameconfig/elements/microsoftgameconfig-element-relatedproduct) com esse jogo. |
| Jogo não compatível com hub | Todos os jogos que têm relações [RelatedProduct](/pt-BR/reference/system/microsoftgameconfig/elements/microsoftgameconfig-element-relatedproduct) com esse jogo. |

Para tornar o PLS compartilhável, adicione a marcação \<Shareable> ao MicrosoftGame.config como filho de \<PersistentLocalStorage>.

```xml theme={null}
<?xml version="1.0" encoding="utf-8"?>
<Game configVersion="1">
    <!-- snip -->
    <PersistentLocalStorage>
        <Shareable>true</Shareable> <!--This is optional, and the default value is false -->
    </PersistentLocalStorage>
</Game>
```

<Note>
  Se um título marcar seu PLS como compartilhável, ele deverá garantir que, antes de suspender o jogo,
</Note>

feche todos os identificadores do seu PLS; caso contrário, a suspensão do jogo falhará e o jogo será encerrado.

**Armazenamento Local Persistente expansível**
O Armazenamento Local Persistente expansível é uma extensão do PLS que permite que os títulos solicitem acesso a uma
quantidade muito maior de espaço de armazenamento local, sem reservar esse espaço permanentemente com antecedência. Ele
é adequado para títulos que têm alguns cenários que exigem espaço adicional, por exemplo,
downloads de Conteúdo Gerado pelo Usuário (UGC) ou arquivos grandes de replay local, que nem todos os usuários podem
utilizar.

Para solicitar o PLS expansível, adicione a seguinte marcação ao MicrosoftGame.config como filho de \<Game>.

```xml theme={null}
<?xml version="1.0" encoding="utf-8"?>
<Game configVersion="1">
    <!-- snip -->
    <PersistentLocalStorage>
        <!-- <SizeMB>1024</SizeMB>   --Optional.  To be used if your title always wants 1024 MBs pre-allocated even before launch -->
        <GrowableToMB>20480</GrowableToMB> <!-- This is not a static reservation, but the largest size your title PLS can grow to -->
    </PersistentLocalStorage>
</Game>
```

Antes de gravar no PLS expansível, seu título deve verificar o espaço disponível usando a API
[XPersistentLocalStorageGetSpaceInfo](/pt-BR/reference/system/xpersistentlocalstorage/functions/xpersistentlocalstoragegetspaceinfo). Observe que
chamar
[GetDiskFreeSpaceExW ](https://learn.microsoft.com/windows/win32/api/fileapi/nf-fileapi-getdiskfreespaceexw)
informará aos títulos apenas a quantidade máxima de espaço livre restante no PLS - não há garantia de que ele esteja
disponível.
[XPersistentLocalStorageGetSpaceInfo](/pt-BR/reference/system/xpersistentlocalstorage/functions/xpersistentlocalstoragegetspaceinfo) também retornará o
espaço livre total, bem como o espaço livre disponível (o mínimo entre o que está livre e o espaço
real na unidade subjacente).

Se o seu título precisar de mais espaço do que o disponível, não tiver preenchido sua alocação de PLS expansível, mas
não houver espaço subjacente suficiente na unidade para aumentar o XVD do PLS, você precisará
solicitar ao usuário final que libere o espaço adicional necessário para o seu título usando a
função
[XPersistentLocalStoragePromptUserForSpaceAsync](/pt-BR/reference/system/xpersistentlocalstorage/functions/xpersistentlocalstoragepromptuserforspaceasync).

Se o título usar uma atualização de conteúdo para mudar de um armazenamento local persistente não expansível para um
espaço de armazenamento expansível, o espaço de armazenamento anterior será excluído e seu conteúdo será perdido
durante a atualização.

**Conteúdo para download**

O conteúdo para download, depois de instalado, pode ser montado e desmontado sob demanda. Chame
[XPackageMount](/pt-BR/reference/system/xpackage/functions/xpackagemount) para montar o DLC e [XPackageGetMountPath](/pt-BR/reference/system/xpackage/functions/xpackagegetmountpath)
para obter o caminho.

<Note>
  **Nunca** codifique os valores de caminho retornados, pois eles podem variar ao longo do tempo e só são válidos depois que um pacote é montado.
</Note>

<a id="ID4EFCAC" />

## Acessando dados de jogo com as ferramentas remotas do console

As ferramentas remotas do console podem usar o mesmo mapeamento dos títulos em execução especificando **/title** com
a opção **/X**. Assim, as ferramentas remotas do console podem acessar os dados gravados no volume de rascunho e
os dados de jogo instalados do título atual.

Para copiar arquivos do volume de rascunho para seu PC de desenvolvimento, use o **xbcp** da seguinte maneira:

<strong>xbcp /x:/title xd:\\</strong><em>file-name</em> <strong>c:\\</strong><em>local-path</em>

Para copiar arquivos do seu PC de desenvolvimento para o volume do título, use o **xbcp** da seguinte maneira:

<strong>xbcp /x:/title c:\\</strong><em>file-name</em> <strong>xg:\\</strong><em>dest-path</em>

Você só pode acessar o PLS a partir de um PC de desenvolvimento quando o título estiver em execução. Os arquivos podem ser copiados de e
para esse local usando os comandos xb. Por exemplo:

<strong>xbcp /x:/title c:\\</strong><em>file-name</em> <strong>xr:\\</strong><em>dest-path</em>

Para obter mais informações sobre a sintaxe para usar as ferramentas remotas do console para trabalhar com arquivos no console,
consulte [Cópia de arquivos (xbcp.exe) (tópico sob NDA)](/pt-BR/tools/tools-console/commandlinetools/xbcp).

<a id="ID4ELEAC" />

## Documentação de referência da API

* [XPackage (conteúdo da API)](/pt-BR/reference/system/xpackage/xpackage_members)
  * Funções
    * [XPackageMount](/pt-BR/reference/system/xpackage/functions/xpackagemount)
    * [XPackageGetMountPath](/pt-BR/reference/system/xpackage/functions/xpackagegetmountpath)
    * [XPackageGetWriteStats](/pt-BR/reference/system/xpackage/functions/xpackagegetwritestats)
* [xpersistentlocalstorage (conteúdo da API)](/pt-BR/reference/system/xpersistentlocalstorage/xpersistentlocalstorage_members)
  * Funções
    * [XPersistentLocalStorageGetPathSize](/pt-BR/reference/system/xpersistentlocalstorage/functions/xpersistentlocalstoragegetpathsize)
    * [XPersistentLocalStorageGetPath](/pt-BR/reference/system/xpersistentlocalstorage/functions/xpersistentlocalstoragegetpath)
    * [XPersistentLocalStorageGetSpaceInfo](/pt-BR/reference/system/xpersistentlocalstorage/functions/xpersistentlocalstoragegetspaceinfo)
    * [XPersistentLocalStoragePromptUserForSpaceAsync](/pt-BR/reference/system/xpersistentlocalstorage/functions/xpersistentlocalstoragepromptuserforspaceasync)

## Confira também

[Visão geral de salvamentos de jogo](/pt-BR/build/core-features/common/game-save/game-saves-overview)
[Hubs de jogos da franquia](https://learn.microsoft.com/gaming/gdk/docs/store/franchise-game-hubs)


## Related topics

- [Armazenamento](/pt-BR/build/console-features/storage/index.md)
- [Sistemas de armazenamento de Game Saves](/pt-BR/build/core-features/common/game-save/game-saves-storage-systems.md)
- [XPersistentLocalStorage](/pt-BR/reference/system/xpersistentlocalstorage/xpersistentlocalstorage_members.md)
- [XPersistentLocalStorageSpaceInfo](/pt-BR/reference/system/xpersistentlocalstorage/structs/xpersistentlocalstoragespaceinfo.md)
- [XPersistentLocalStorageGetSpaceInfo](/pt-BR/reference/system/xpersistentlocalstorage/functions/xpersistentlocalstoragegetspaceinfo.md)
