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

# XDspConnect

> XDspConnect

# XDspConnect

Estabelece uma conexão com o servidor de hardware, cria uma instância de cliente XDSP e aloca os recursos necessários para o processamento. Há um limite global de 8 clientes XDSP ativos simultaneamente.

## Sintaxe

```cpp theme={null}
HRESULT XDspConnect(  
         float* baseBuffer,  
         uint32_t baseBufferLength,  
         uint32_t aggregateImpulseResponseInSeconds,  
         XDspClientHandle* handle  
)  
```

### Parâmetros

*baseBuffer*   \_In\_\
Tipo: float\*

Buffer contíguo alocado por um chamador do XDSP para ser usado para passar dados de entrada e recuperar os dados de saída. Para obter detalhes adicionais, confira a seção **Comentários** abaixo.

*baseBufferLength*   \_In\_\
Tipo: uint32\_t

Comprimento do *baseBuffer*, em bytes. Esse comprimento deve ser de pelo menos 64 KB e no máximo 500 MB.

*aggregateImpulseResponseInSeconds*   \_In\_\
Tipo: uint32\_t

Representa a duração total de todas as respostas ao impulso individuais que serão ativadas simultaneamente nesse cliente. *aggregateImpulseResponseInSeconds* deve ser definido como um valor maior que zero para [XDspProcessType::Convolution](/pt-BR/reference/audio/xdspaudio/enums/xdspprocesstype); caso contrário, deve ser zero. Há um limite global de 128 segundos de resposta ao impulso agregada em todos os clientes XDSP.

*handle*   \_Outptr\_\
Tipo: [XDspClientHandle\*](/pt-BR/reference/audio/xdspaudio/handles/xdspclienthandle)

Identificador para um cliente XDSP que deve ser usado para ativar fluxos por meio de [XDspActivate](/pt-BR/reference/audio/xdspaudio/functions/xdspactivate) e desconectar o cliente do servidor de hardware por meio de [XDspDisconnect](/pt-BR/reference/audio/xdspaudio/functions/xdspdisconnect). No máximo 256 fluxos podem estar ativos a qualquer momento para todos os XDSPClientHandles.

### Valor retornado

Tipo: HRESULT

Se o método for bem-sucedido, ele retornará S\_OK. Se o método falhar, ele retornará um dos seguintes códigos (lista parcial):

| Código de retorno | Descrição |
| - | - |
| E\_INVALIDARG | Um ou mais argumentos são inválidos. |
| E\_OUTOFMEMORY | Falha na alocação de memória. |
| XDSP\_E\_MAX\_CLIENTS\_EXCEEDED | O número máximo de XDspClients já foi criado. |
| XDSP\_E\_MAX\_AGGREGATE\_IMPULSE\_RESPONSE\_EXCEEDED | A chamada atual de [XDspConnect](/pt-BR/reference/audio/xdspaudio/functions/xdspconnect) fará com que o XDSP exceda o comprimento máximo agregado de resposta ao impulso com suporte e, portanto, é inválida. |

## Comentários

Se a chamada for bem-sucedida, o *baseBuffer* poderá ser usado pelo chamador para passar dados de entrada e recuperar os dados de saída do fluxo por meio dos parâmetros de [XDspCommand](/pt-BR/reference/audio/xdspaudio/structs/xdspcommand). Se o envelopamento for usado, esse buffer também deverá considerar os buffers para armazenar parâmetros de envelope. Confira [Visão geral do envelopamento usando a API do XDSP](/pt-BR/build/console-features/audio/overviews/xdsp-overview-enveloping) para obter mais informações sobre envelopamento.

Essa função deve ser chamada antes de ativar fluxos XDSP para registrar um grande bloco de memória suficiente para conter vários fluxos de áudio completos para uso como entrada, vários buffers de saída para todos os fluxos XDSP que serão ativados por meio de [XDspActivate](/pt-BR/reference/audio/xdspaudio/functions/xdspactivate) e vários buffers de multiplicador de bloco que podem ser usados como parte do [XDspCommand](/pt-BR/reference/audio/xdspaudio/structs/xdspcommand) para o tipo de processamento [XDspProcessType::ForwardFourierTransform](/pt-BR/reference/audio/xdspaudio/enums/xdspprocesstype). Esteja ciente dos requisitos de tamanho mínimo e máximo desse buffer, conforme observado acima. Se essa chamada for bem-sucedida, todos os fluxos XDSP poderão acessar qualquer parte desse bloco de memória.

Essa memória deve ser alocada por meio de XMemAlloc() com estes atributos: **XALLOC\_MEMTYPE\_PHYSICAL\_CACHEABLE**, **XALLOC\_PAGESIZE\_64KB**, **XALLOC\_ALIGNMENT\_64K**

Esses atributos devem ser definidos usando **MAKE\_XALLOC\_ATTRIBUTES()**.

Um exemplo disso é o seguinte:

```cpp theme={null}
static const ULONGLONG XMemAllocAttributes = MAKE_XALLOC_ATTRIBUTES(allocatorId,
   0,
   XALLOC_MEMTYPE_PHYSICAL_CACHEABLE,
   XALLOC_PAGESIZE_64KB,
   XALLOC_ALIGNMENT_64K,
   FALSE);
```

*allocatorId* no exemplo acima deve ser substituído pela ID de alocador correta usada pelo título.

Cabe ao chamador particionar e reciclar o *baseBuffer* para conter diferentes fluxos de entrada e buffers de saída para vários fluxos. A *impulseResponse* não precisa vir desse *baseBuffer* e pode vir de qualquer memória alocada pelo chamador.

A memória apontada por *baseBuffer* não deve ser liberada até que [XDspConnect](/pt-BR/reference/audio/xdspaudio/functions/xdspconnect) seja chamado.

Todos os ponteiros de memória passados para a [API do XDSP](/pt-BR/reference/audio/xdspaudio/xdspaudio_members) devem estar alinhados em 16 bytes.

Se a chamada for bem-sucedida, um [XDspClientHandle](/pt-BR/reference/audio/xdspaudio/handles/xdspclienthandle) válido será retornado para ser usado com as chamadas [XDspActivate](/pt-BR/reference/audio/xdspaudio/functions/xdspactivate) e [XDspDisconnect](/pt-BR/reference/audio/xdspaudio/functions/xdspdisconnect).

## Requisitos

**Cabeçalho:** XDspAudio.h

**Biblioteca:** Chad.lib

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

## Documentação conceitual

* [Visão geral do envelopamento do XDSP](/pt-BR/build/console-features/audio/overviews/xdsp-overview-enveloping)
* [Visão geral de uma convolução de fluxo único com envelope usando a API do XDSP](/pt-BR/build/console-features/audio/overviews/xdsp-overview-single-stream-convolution-with-envelope)
* [Visão geral de uma convolução de fluxo único usando a API do XDSP](/pt-BR/build/console-features/audio/overviews/xdsp-overview-single-stream-convolution)
* [Visão geral do XDSP](/pt-BR/build/console-features/audio/overviews/xdsp-overview)

## Confira também

[XDSP](/pt-BR/reference/audio/xdspaudio/xdspaudio_members)\
[XDspConnectWithMaximumStreamLimit](/pt-BR/reference/audio/xdspaudio/functions/xdspconnectwithmaximumstreamlimit)\
[XDspDisconnect](/pt-BR/reference/audio/xdspaudio/functions/xdspdisconnect)\
[Erros do XDSP](/pt-BR/reference/audio/xdspaudio/enums/xdsperrors)\
[Visão geral de uma convolução de fluxo único usando a API do XDSP](/pt-BR/build/console-features/audio/overviews/xdsp-overview-single-stream-convolution)\
[Visão geral de uma FFT/IFFT de fluxo único usando a API do XDSP](/pt-BR/build/console-features/audio/overviews/xdsp-overview-single-stream-fft-ifft)\
[Visão geral de uma convolução de fluxo único com envelope usando a API do XDSP](/pt-BR/build/console-features/audio/overviews/xdsp-overview-single-stream-convolution-with-envelope)


## Related topics

- [XDspConnect](/reference/audio/xdspaudio/functions/xdspconnect.md)
- [XDspConnectWithMaximumStreamLimit](/reference/audio/xdspaudio/functions/xdspconnectwithmaximumstreamlimit.md)
- [XDspDisconnect](/reference/audio/xdspaudio/functions/xdspdisconnect.md)
- [XDspCommand](/reference/audio/xdspaudio/structs/xdspcommand.md)
- [XDSP overview](/build/console-features/audio/overviews/xdsp-overview.md)
