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

# Referência do método Save do Provider do XGameSave

> Referência para o método Provider.Save do wrapper do XGameSave, que grava bytes do estado do jogo em um blob (arquivo) nomeado dentro de um contêiner de salvamento especificado.

# Microsoft.Xbox.Wrappers.XGameSave.Provider.Save

Salva dados no blob (arquivo) especificado dentro do contêiner especificado.

<a id="syntaxSection" />

## Sintaxe

```cpp theme={null}
HRESULT Save(const std::string& containerName,
             const std::string& blobName,
             size_t dataSize,
             const uint8_t* blobData);
```

<a id="parametersSection" />

### Parâmetros

*containerName*   \_In\_<br />Tipo: std::string

O nome do contêiner.

*blobName*  \_In\_<br />Tipo: std::string

O nome do blob.

*dataSize*   \_In\_<br />Tipo: size\_t

A quantidade de dados a serem gravados no blob. Esse tamanho é limitado a um máximo de 16 MB (GS\_MAX\_BLOB\_SIZE).

*blobData*   \_In\_<br />Tipo: uint8\_t\*

Um ponteiro para os bytes a serem gravados no blob.

<a id="retvalSection" />

### Valor retornado

Tipo: HRESULT

Este método retorna **S\_OK** em caso de êxito e os seguintes códigos HRESULT em caso de falha:

* **GS\_INVALID\_CONTAINER\_NAME**
* **GS\_OUT\_OF\_LOCAL\_STORAGE**
* **GS\_UPDATE\_TOO\_BIG**
* **GS\_QUOTA\_EXCEEDED**
* **GS\_HANDLE\_EXPIRED**

<a id="exampleSection" />

## Exemplo

O exemplo de código a seguir demonstra como usar a função **Save**.

```cpp theme={null}
using Microsoft::Xbox::Wrappers::GameSave;

std::vector<uint8_t> saveData; // Contains the player's data.

Provider provider = new Provider();

if(SUCCEEDED(provider->Initialize(userHandle, mySCID))
{  
   HRESULT hr = provider->Save("Save_slot_1", "progress", saveData.size(), saveData.data());
   if(FAILED(hr))
   {
      if(hr == E_GS_QUOTA_EXCEEDED)
      {
         // Message that the user must delete saves for this game.
      }
      else if(hr == E_GS_OUT_OF_LOCAL_STORAGE)
      {
         // Message to the user that they have run out of save
         // space on the local device.
      }
      else if(hr == E_GS_UPDATE_TOO_BIG)
      {
         // This is really a development time thing to catch.
         // Your save size was too large for this Save call. Save
         // calls are limited to a maximum size of
         // 16 MB (GS_MAX_BLOB_SIZE).
      }
      else if(hr == E_GS_HANDLE_EXPIRED)
      {
         // You must recreate the provider, and then try again.
      }
      else
      {
         // Log error.
      }
   }
}
```

<a id="remarksSection" />

## Comentários

Você deve chamar o método [Initialize](/pt-BR/reference/system/Wrappers/classes/provider/methods/xgamesave_wrapper_provider_initialize) antes de poder chamar qualquer outro método da classe `Provider`.

Para inicializar o wrapper de jogos salvos e sincronizar todos os contêineres do usuário especificado, chame [Initialize](/pt-BR/reference/system/Wrappers/classes/provider/methods/xgamesave_wrapper_provider_initialize).

Para carregar os dados do blob fornecido, de dentro do contêiner especificado, chame [Load](/pt-BR/reference/system/Wrappers/classes/provider/methods/xgamesave_wrapper_provider_load).

<a id="requirementsSection" />

## Requisitos

**Cabeçalho:** xgamesavewrappers.hpp

**Plataformas com suporte:** Windows, consoles da família XBOX One e consoles XBOX Series

<a id="seealsoSection" />

## Confira também

[Microsoft.Xbox.Wrappers.XGameSave.Provider](/pt-BR/reference/system/Wrappers/classes/provider/xgamesave_wrapper_provider)<br />[Membros do wrapper do XGameSave](/pt-BR/reference/system/Wrappers/xgamesave_wrapper_members)<br />[Load](/pt-BR/reference/system/Wrappers/classes/provider/methods/xgamesave_wrapper_provider_load)


## Related topics

- [Referência do método Initialize do Provider do XGameSave](/pt-BR/reference/system/Wrappers/classes/provider/methods/xgamesave_wrapper_provider_initialize.md)
- [Referência do método Load do Provider do XGameSave](/pt-BR/reference/system/Wrappers/classes/provider/methods/xgamesave_wrapper_provider_load.md)
- [Referência do método GetQuota do Provider do XGameSave](/pt-BR/reference/system/Wrappers/classes/provider/methods/xgamesave_wrapper_provider_getquota.md)
- [Método QueryContainers do Provider do XGameSave](/pt-BR/reference/system/Wrappers/classes/provider/methods/xgamesave_wrapper_provider_querycontainers.md)
- [Método Delete(std::string&) do Provider do XGameSave](/pt-BR/reference/system/Wrappers/classes/provider/methods/xgamesave_wrapper_provider_delete_string.md)
