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

# XApuConnect

> XApuConnect

# XApuConnect

Estabelece uma conexão e aloca os recursos necessários para uma XAPU (Audio Processing Unit).

## Sintaxe

```cpp theme={null}
HRESULT XApuConnect(  
         XApuConnectInputParameters* params,  
         XApuConnectOutputParameters* data,  
         XApuHandle* handle  
)  
```

### Parâmetros

*params*   \_In\_\
Tipo: [XApuConnectInputParameters\*](/pt-BR/reference/audio/xapu/structs/xapuconnectinputparameters)

Parâmetros passados para XApuConnect para alocar recursos.

*data*   \_Out\_\
Tipo: [XApuConnectOutputParameters\*](/pt-BR/reference/audio/xapu/structs/xapuconnectoutputparameters)

Parâmetros retornados por XApuConnect.

*handle*   \_Outptr\_\
Tipo: XApuHandle\*

Ponteiro para um identificador XAPU retornado. Esse identificador é usado para indicar qual instância XAPU manipular ao chamar outras APIs do XAPU.

### Valor retornado

Tipo: HRESULT

Retornará S\_OK se tiver êxito; caso contrário, retornará um código de erro.

## Comentários

O chamador deve especificar um [XApuProcessType](/pt-BR/reference/audio/xapu/enums/xapuprocesstype) para o cliente XAPU executar. Uma instância de XAPU pode trabalhar com um tipo de processo durante seu tempo de vida. Para executar dois ou mais processos diferentes, duas ou mais instâncias de XAPU devem ser instanciadas.

Dentro de [XApuConnectInputParameters](/pt-BR/reference/audio/xapu/structs/xapuconnectinputparameters), o chamador deve especificar o seguinte:

* Número máximo de fluxos que o XAPU deve processar simultaneamente.
* Número máximo de comandos enfileirados para cada fluxo.
* Alocação total de memória necessária para todos os comandos e fluxos. Isso inclui as alocações totais para dados de entrada, saída e processamento no número máximo de fluxos multiplicado pelos comandos enfileirados por fluxo.

Se a chamada tiver êxito, o parâmetro [XApuConnectOutputParameters::baseData](/pt-BR/reference/audio/xapu/structs/xapuconnectoutputparameters) apontará para um bloco de memória que o chamador deve usar para passar dados de entrada e recuperar os dados de saída dos fluxos. Cabe ao chamador particionar e reciclar esse bloco de memória. A alocação será liberada na chamada de [XApuDisconnect](/pt-BR/reference/audio/xapu/functions/xapudisconnect).

[XApuConnectOutputParameters::resultReadyEvent](/pt-BR/reference/audio/xapu/structs/xapuconnectoutputparameters) conterá um identificador de evento Win32 quando [XApuConnectOptions::EnableResultReadyEvent](/pt-BR/reference/audio/xapu/enums/xapuconnectoptions) estiver definido. Esse identificador será fechado em uma chamada de [XApuDisconnect](/pt-BR/reference/audio/xapu/functions/xapudisconnect).

Esse identificador será fechado em uma chamada de [XApuDisconnect](/pt-BR/reference/audio/xapu/functions/xapudisconnect).

Não é recomendável chamar [XapuConnect](/pt-BR/reference/audio/xapu/functions/xapuconnect) e [XApuDisconnect](/pt-BR/reference/audio/xapu/functions/xapudisconnect) com frequência para iniciar e parar fluxos, pois essas chamadas são demoradas e também podem levar a perdas de recursos devido à fragmentação da memória. Em vez disso, [XapuConnect](/pt-BR/reference/audio/xapu/functions/xapuconnect) deve ser chamado uma vez na inicialização da sessão de streaming e, em seguida, [XApuCommandType::Activate](/pt-BR/reference/audio/xapu/enums/xapucommandtype) e [XApuCommandType::Deactivate](/pt-BR/reference/audio/xapu/enums/xapucommandtype) devem ser usados para iniciar e parar fluxos durante o streaming. No final da sessão de streaming, [XApuDisconnect](/pt-BR/reference/audio/xapu/functions/xapudisconnect) deve ser chamado. Isso vale para todos os clientes XAPU.

## Requisitos

**Cabeçalho:** xapu.h

**Biblioteca:** xapu.lib

**Plataformas compatíveis:** XBOX Series X|S

## Documentação conceitual

* [Visão geral do XAPU](/pt-BR/build/console-features/audio/overviews/xapu-overview)

## Confira também

[XAPU](/pt-BR/reference/audio/xapu/xapu_members)\
[XApuDecodeConvertCommand](/pt-BR/reference/audio/xapu/structs/xapudecodeconvertcommand)\
[XApuDequeueResult](/pt-BR/reference/audio/xapu/functions/xapudequeueresult)\
[XApuEnqueueCommand](/pt-BR/reference/audio/xapu/functions/xapuenqueuecommand)\
[XApuGetResultCount](/pt-BR/reference/audio/xapu/functions/xapugetresultcount)


## Related topics

- [XApuConnectOutputParameters](/pt-BR/reference/audio/xapu/structs/xapuconnectoutputparameters.md)
- [XApuConnectOptions](/pt-BR/reference/audio/xapu/enums/xapuconnectoptions.md)
- [XApuConnectInputParameters](/pt-BR/reference/audio/xapu/structs/xapuconnectinputparameters.md)
- [XApuDisconnect](/pt-BR/reference/audio/xapu/functions/xapudisconnect.md)
- [XApuDequeueResult](/pt-BR/reference/audio/xapu/functions/xapudequeueresult.md)
