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

# Visão geral da XSAPI C

> Introdução à camada de API C da XSAPI para o XBOX Live em títulos com o GDK, abrangendo callbacks de alocação de memória, controle de threads e a libHttpClient.

Em junho de 2018, uma camada de API C foi adicionada à XSAPI. A camada de API C resolve alguns problemas que ocorriam com as camadas de API C++ e WinRT.

> **Observação:**
> No momento, as APIs C só funcionam com títulos que usam o GDK e o XDK. Elas não oferecem suporte a jogos UWP no momento.

## Benefícios da API C da XSAPI

* Permite que os títulos controlem as alocações de memória ao chamar a XSAPI.
* Permite que os títulos tenham controle total do tratamento de threads ao chamar a XSAPI.
* Usa uma nova biblioteca HTTP, a libHttpClient, projetada para desenvolvedores de jogos.

Você pode usar as APIs C junto com a XSAPI em C++, mas não obterá os benefícios listados anteriormente com as APIs C++.

### Gerenciando alocações de memória

Com a API C, agora você pode especificar um callback de função que a XSAPI chamará sempre que tentar alocar memória.
Se você não especificar callbacks de função, a XSAPI usará as rotinas padrão de alocação de memória.

Para especificar manualmente suas rotinas de memória, você pode fazer o seguinte:

* No início do jogo:
  * Chame `XblMemSetFunctions(memAllocFunc, memFreeFunc)` para especificar os callbacks de alocação para atribuir e liberar memória.
  * Chame `XblInitialize()` para inicializar a instância da biblioteca.
* Enquanto o jogo estiver em execução:
  * Chamar qualquer uma das novas APIs C da XSAPI que alocam ou liberam memória fará com que a XSAPI chame os callbacks de tratamento de memória especificados.
* Quando o jogo for encerrado:
  * Chame `XblCleanup()` para recuperar todos os recursos associados à biblioteca XSAPI.
  * Limpe o gerenciador de memória personalizado do seu jogo.

### Gerenciando threads assíncronas

A API C introduz um novo padrão de chamada de threads assíncronas que dá aos desenvolvedores controle total sobre o modelo de threads.
Para obter mais informações, consulte [Padrão de chamada para chamadas assíncronas da camada C da XSAPI](/pt-BR/services/xbox-services/fundamentals/xbox-services-api/live-flatc-async-patterns).

## Migrando código para usar a XSAPI C

As APIs C da XSAPI podem ser usadas junto com as APIs C++ da XSAPI em um projeto; por isso, recomendamos migrar um recurso de cada vez.

As APIs C e as APIs C++ são, na verdade, apenas wrappers finos em torno de um núcleo comum, com pontos de entrada diferentes; portanto, a funcionalidade não deve mudar.

No entanto, somente as APIs C podem aproveitar os recursos personalizados de gerenciamento de memória e de threads.

> **Importante:**
> Você não pode misturar as APIs WinRT da XSAPI com as APIs C.

## Recursos úteis

* [Exemplos que usam as APIs C da XSAPI](https://github.com/Microsoft/xbox-live-samples)
* [Repositório da libHttpClient no GitHub](https://github.com/Microsoft/libHttpClient)
* Para ver as APIs C, consulte os arquivos de cabeçalho da XSAPI C. Eles estão no SDK dos serviços do XBOX, que faz parte do GDK.

## Confira também

[Referência da XSAPI C](/pt-BR/reference/live/xsapi-c/atoc-xsapi-c)

[Referência da API REST](/pt-BR/reference/live/rest/atoc-xboxlivews-reference)

[Referência do HttpClient](/pt-BR/reference/live/httpclient/atoc-httpclient)


## Related topics

- [Visão geral do WinHTTP](/pt-BR/build/console-features/networking/web-requests/intro-winhttp.md)
- [Visão geral de Godot e engines da comunidade](/pt-BR/paths/community-engines/overview.md)
- [Visão geral da segurança do GDK](/pt-BR/build/game-principles/security/security-overview.md)
- [Visão geral da API dos serviços do XBOX](/pt-BR/services/xbox-services/fundamentals/xbox-services-api/live-introduction-to-xbox-live-apis.md)
- [Visão geral da publicação](/pt-BR/publishing/game-publishing/overview.md)
