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

# Gerenciar dados do XGameSave no PC (xgamesaveutil.exe)

> Gerenciar dados do XGameSave no PC (xgamesaveutil.exe)

Use esta ferramenta para gerenciar os dados do `XGameSave` no seu PC. Não a use enquanto o título estiver em execução. Fazer isso pode deixar os Game Saves do título em um estado indeterminado.

Esta ferramenta requer que o pacote do título esteja instalado no seu PC. Esse requisito é diferente do console, onde a implantação pelo Visual Studio é suficiente para que o `xbstorage` interaja com os Game Saves do título. Você pode gerar pacotes para PC com o [makepkg](https://docs.xbox.com/pt-BR/build/core-features/common/packaging/deployment/makepkg.md) e instalá-los com o [wdapp install](https://docs.xbox.com/pt-BR/tools/tools-pc/commandlinetools/gr-wdapp.md).

> [!NOTE]
>
> Se você precisar gerenciar os dados do `XGameSave` no console, deverá usar o [Gerenciar o armazenamento do XGameSave no console (xbstorage.exe)](https://docs.xbox.com/pt-BR/tools/tools-console/commandlinetools/xbstorage.md).

| Comando | Descrição |
| - | - |
| [reset](#xgamesaveutil_reset) | Exclui apenas os dados locais do Package Family Name (PFN) e do Service Configuration Identifier (SCID) especificados no PC, sem impacto nos salvamentos na nuvem. |
| [import](#xgamesaveutil_import) | Importa dados do arquivo XML especificado para um espaço de armazenamento do `XGameSave`. |
| [export](#xgamesaveutil_export) | Exporta dados de um espaço de armazenamento do `XGameSave` para o arquivo XML especificado. |
| [delete](#xgamesaveutil_delete) | Exclui dados de um espaço de armazenamento do `XGameSave`. |
| [generate](#xgamesaveutil_generate) | Gera dados fictícios e os salva no arquivo XML especificado. |

## xgamesaveutil reset

```
xgamesaveutil reset [/pfn:<PFN>] [/scid:<SCID>] [/context:<infile>]
```

Exclui apenas os dados locais do PFN e do SCID especificados no PC, sem impacto nos salvamentos na nuvem. Se um título for iniciado depois que `xgamesaveutil reset` for chamado, os salvamentos existentes na nuvem serão sincronizados para o dispositivo.

Há duas formas de especificar o local dos dados a serem excluídos:

* Se o parâmetro **/context** for usado e o nome de arquivo especificado por \<infile> tiver uma seção *ContextDescription* preenchida
  corretamente, esse arquivo será usado para especificar o PFN e o SCID de destino.

* O PFN e o SCID podem ser especificados parcial ou totalmente por meio de parâmetros de linha de comando, que têm precedência sobre os respectivos elementos
  do PFN e do SCID especificados no arquivo de entrada.

| Opção | Descrição |
| - | - |
| /context:\<infile> | Especifica o arquivo a ser usado para o PFN e o SCID do app. |
| /pfn:\<PFN> | Especifica o Package Family Name (PFN) do app do qual os dados serão excluídos. O app deve estar instalado. |
| /scid:\<SCID> | Especifica o Service Configuration Identifier (SCID). Esse valor vem da configuração dos serviços XBOX. |

**Exemplos**

```cmd theme={null}
xgamesaveutil reset /context:target.xml
xgamesaveutil reset /pfn:MyGame_xxxxxx /scid:2AAEB34B-DAB2-4879-B625-D970069C1D22
```

## xgamesaveutil import

```
xgamesaveutil import <filename> [/pfn:<PFN>] [/scid:<SCID>] [/replace]
```

Importa os dados especificados em *filename* para um espaço de armazenamento. Esse arquivo XML contém os dados. Para ver um exemplo,
veja [xgamesaveutil generate](#xgamesaveutil_generate) neste artigo. Para obter mais informações sobre o formato XML do arquivo, veja
[Formato de arquivo de importação e exportação](#xgamesaveutil_fileformat) neste artigo.

Há duas formas de especificar para onde importar os dados do `XGameSave`:

* Se o parâmetro **/context** for usado e o nome de arquivo especificado por \<filename> tiver uma seção *ContextDescription* preenchida
  corretamente, esse arquivo será usado para especificar o PFN e o SCID de destino.

* O PFN e o SCID podem ser especificados parcial ou totalmente por meio de parâmetros de linha de comando, que têm precedência sobre os respectivos elementos
  do PFN e do SCID especificados no arquivo de entrada.

| Opção | Descrição |
| - | - |
| /pfn:\<PFN> | Especifica o Package Family Name (PFN) do app do qual os dados serão excluídos. O app deve estar instalado. |
| /scid:\<SCID> | Especifica o Service Configuration Identifier (SCID). Esse valor vem da configuração dos serviços XBOX. |
| /replace | Exclui todos os contêineres antes de executar a importação. |

**Exemplos**

```cmd theme={null}
xgamesaveutil import mydata.xml
xgamesaveutil import mydata.xml /replace
xgamesaveutil import mydata.xml /pfn:MyGame_xxxxxx /scid:2AAEB34B-DAB2-4879-B625-D970069C1D22
```

> [!NOTE]
>
> No PC, esta ferramenta grava os dados importados diretamente no armazenamento local. Ela **não** sincroniza com a nuvem antes ou depois da importação e **não** carrega automaticamente os dados importados na nuvem. Os dados são carregados na próxima vez que o título for iniciado e adquirir o provedor de Game Saves (por exemplo, chamando [XGameSaveInitializeProvider](https://docs.xbox.com/pt-BR/reference/system/xgamesave/functions/xgamesaveinitializeprovider.md)).
>
> Isso é diferente da ferramenta do console (`xbstorage`), que sincroniza com a nuvem antes de importar e carrega os dados imediatamente depois.

Se um jogo com o mesmo Service Configuration Identifier (SCID) primário estiver em execução, essa operação poderá causar uma condição de corrida e
deixar o conteúdo do espaço de armazenamento do `XGameSave` em um estado indeterminado.

Se **/replace** não for especificado, os contêineres especificados no arquivo de entrada serão apagados antes que os blobs especificados
no arquivo de entrada sejam gravados. Os contêineres do espaço de armazenamento do `XGameSave` que não forem especificados no arquivo de entrada não serão alterados.

## xgamesaveutil export

```cmd theme={null}
xgamesaveutil export <outfile> [/pfn:<PFN>] [/scid:<SCID>] [/context:<infile>]
```

Exporta dados de um espaço de armazenamento do `XGameSave` para o arquivo especificado por **outfile**. O arquivo XML contém os dados exportados. Para ver um exemplo, veja [xgamesaveutil generate](#xgamesaveutil_generate). Para obter detalhes sobre o formato XML, veja [Formato de arquivo de importação e exportação](#xgamesaveutil_fileformat).

Há duas formas de especificar de onde exportar os dados do `XGameSave`:

* Se o parâmetro **/context** for usado e o nome de arquivo especificado por \<infile> tiver uma seção *ContextDescription* preenchida
  corretamente, esse arquivo será usado para especificar o PFN e o SCID de destino.

* O PFN e o SCID podem ser especificados parcial ou totalmente por meio de parâmetros de linha de comando, que têm precedência sobre os respectivos elementos
  do PFN e do SCID especificados no arquivo de entrada.

| Opção | Descrição |
| - | - |
| /pfn:\<PFN> | Especifica o Package Family Name (PFN) do app do qual os dados serão exportados. O app deve estar instalado. |
| /scid:\<SCID> | Especifica o Service Configuration Identifier (SCID). Esse valor vem da configuração dos serviços XBOX. |

**Exemplos**

```cmd theme={null}
xgamesaveutil export exporteddata.xml /context:target.xml
xgamesaveutil export exporteddata.xml /pfn:MyGame_xxxxxx /scid:2AAEB34B-DAB2-4879-B625-D970069C1D22
```

> [!NOTE]
>
> No PC, esta ferramenta lê os dados diretamente do armazenamento local. Ela **não** sincroniza com a nuvem antes de exportar. Os dados exportados refletem o que estiver atualmente no disco, o que pode não incluir os dados mais recentes da nuvem.

Se um app com o mesmo SCID primário estiver em execução, essa operação poderá causar uma condição de corrida e deixar o conteúdo do
espaço de armazenamento do `XGameSave` em um estado indeterminado.

## xgamesaveutil delete

```cmd theme={null}
xgamesaveutil delete [/pfn:<PFN>] [/scid:<SCID>] [/context:<infile>]
```

Exclui todos os dados de um espaço de armazenamento do `XGameSave`.

Para fazer isso corretamente, você deve:

1. Verificar se o título não está em execução
2. Executar `xgamesaveutil delete` para excluir os dados locais imediatamente.
3. Iniciar o título e adquirir o provedor de Game Saves. Isso permite que o `xgamesaveutil` exclua automaticamente os dados da nuvem.

Há duas formas de especificar de onde excluir os dados do `XGameSave`:

* Se o parâmetro **/context** for usado e o nome de arquivo especificado por \<infile> tiver uma seção *ContextDescription* preenchida
  corretamente, esse arquivo será usado para especificar o PFN e o SCID de destino.

* O PFN e o SCID podem ser especificados parcial ou totalmente por meio de parâmetros de linha de comando, que têm precedência sobre os respectivos elementos
  do PFN e do SCID especificados no arquivo de entrada.

| Opção | Descrição |
| - | - |
| /pfn:\<PFN> | Especifica o Package Family Name (PFN) do app do qual os dados serão excluídos. O app deve estar instalado. |
| /scid:\<SCID> | Especifica o Service Configuration Identifier (SCID). Esse valor vem da configuração dos serviços XBOX. |

**Exemplos**

```cmd theme={null}
xgamesaveutil delete /context:target.xml
xgamesaveutil delete /pfn:MyGame_xxxxxx /scid:2AAEB34B-DAB2-4879-B625-D970069C1D22 
```

Antes de excluir o espaço de armazenamento do `XGameSave` especificado, o sistema tenta sincronizar com a nuvem usando a mesma
lógica executada quando o espaço de armazenamento é adquirido por um app em execução.

Se um app com o mesmo SCID primário estiver em execução, essa operação poderá causar uma condição de corrida e deixar o conteúdo do
espaço de armazenamento do `XGameSave` em um estado indeterminado.

## xgamesaveutil generate

```cmd theme={null}
xgamesaveutil generate <filename> [/containers:<n>] [/blobs:<n>] [/blobsize:<n>]
```

Gera dados fictícios e os salva em um arquivo especificado por \<filename>. Para obter mais informações sobre o formato XML do
arquivo, veja [Formato de arquivo de importação e exportação](#xgamesaveutil_fileformat) neste artigo.

O SCID é definido como 00000000-0000-0000-0000-000000000000. Altere esses valores editando o
arquivo diretamente após ele ser gerado.

| Opção | Descrição |
| - | - |
| /containers:\<n> | Especifica quantos contêineres gerar. O padrão é 2. |
| /blobs:\<n> | Especifica quantos blobs gerar por contêiner. O padrão é 3. |
| /blobsize:\<n> | Especifica quantos bytes por blob. O padrão é 1024. |

**Exemplos**

```cmd theme={null}
xgamesaveutil generate dummydata.xml
xgamesaveutil generate dummydata.xml /containers:4
xgamesaveutil generate dummydata.xml /blobs:10
xgamesaveutil generate dummydata.xml /containers:4 /blobs:10
xgamesaveutil generate dummydata.xml /containers:4 /blobs:10 /blobsize:512
```

Os dados de bytes são uma sequência crescente simples. Por exemplo, um blob de 5 bytes teria os seguintes bytes: 00 01 02 03 04.

Para especificar um espaço de armazenamento do `XGameSave` por usuário, altere o nó **Account** no arquivo XML para algo como o exemplo a seguir.

```
<Account msa="user@example.com"/>  
```

## Formato de arquivo de importação e exportação

O arquivo XML usado com os comandos **import**, **export** e **generate** tem o formato mostrado no exemplo a seguir.

```xml theme={null}
  <?xml version="1.0" encoding="UTF-8"?> 
  <XbConnectedStorageSpace> 
    <ContextDescription> 
      <Account msa="user@example.com"/>
      <Title scid="00000000-0000-0000-0000-000000000000" /> 
    </ContextDescription> 
    <Data> 
      <Containers> 
        <Container name="Container1"> 
          <Blobs> 
            <Blob name="Blob1"> 
              <![CDATA[... ]]>
            </Blob> 
            ... 
            <Blob name="BlobN"> 
              <![CDATA[... ]]>
            </Blob> 
          </Blobs>
        </Container> 
        ... 
        <Container name="ContainerN"> 
        ... 
        </Container> 
      </Containers> 
    </Data> 
  </XbConnectedStorageSpace>  
```

O formato dos dados nesse arquivo XML não é idêntico ao formato na plataforma. O formato pode mudar no
futuro, portanto os arquivos devem ser tratados como se tivessem um formato intermediário ou utilitário, e não um formato de arquivamento.

O nó **ContextDescription** é opcional. Se você estiver criando um espaço de armazenamento do `XGameSave` para um usuário, poderá usar
`<Account msa="user@example.com"/>` em vez de `<Account machine="true"/>`. Caso contrário, o contexto pode ser especificado
na linha de comando para a importação.

Os blobs e contêineres devem ter os nomes correspondentes atribuídos a eles pelo jogo ou app para o qual o arquivo está
sendo gerado.

O conteúdo de cada blob deve ser uma cadeia de caracteres envolvida em uma marca **CDATA**, gerada chamando
**CryptBinaryToStringW** com o sinalizador **CRYPT\_STRING\_BASE64**, fornecendo os dados desse blob como uma matriz de bytes
brutos. Por outro lado, os dados do blob podem ser convertidos de volta chamando **CryptStringToBinary** para fornecer a cadeia de caracteres
anteriormente criptografada. Para ver um exemplo de uso dessas duas funções, veja
[CryptBinaryToString returns invalid bytes](https://social.msdn.microsoft.com/Forums/vstudio/9acac904-c226-4ae0-9b7f-261993b9fda2/cryptbinarytostring-returns-invalid-bytes?forum=vcgeneral).

## Veja também

[Visão geral de Game Saves](https://docs.xbox.com/pt-BR/build/core-features/common/game-save/game-saves-overview.md)
[Visão geral do XGameSaveFiles](https://docs.xbox.com/pt-BR/build/core-features/common/game-save/xgamesavefiles.md)
[Gerenciar o armazenamento do XGameSave no console (xbstorage.exe)](https://docs.xbox.com/pt-BR/tools/tools-console/commandlinetools/xbstorage.md)


## Related topics

- [Ferramentas de linha de comando para o desenvolvimento para PC](https://docs.xbox.com/pt-BR/tools/tools-pc/commandlinetools/gr-commandlinetools-toc.md)
- [Gerenciar o armazenamento XGameSave no console (xbstorage.exe)](https://docs.xbox.com/pt-BR/tools/tools-console/commandlinetools/xbstorage.md)
- [Ferramentas do Game Saves](https://docs.xbox.com/pt-BR/build/core-features/common/game-save/game-saves-tools.md)
- [Ferramentas de linha de comando](https://docs.xbox.com/pt-BR/tools/tools-pc/commandlinetools/index.md)
- [Instruções passo a passo e exemplos do Game Saves](https://docs.xbox.com/pt-BR/build/core-features/common/game-save/game-saves-walkthroughs-and-samples.md)
