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

# XDspConnectWithMaximumStreamLimit

> XDspConnectWithMaximumStreamLimit

# XDspConnectWithMaximumStreamLimit

Establece una conexión con el servidor de hardware, crea una instancia de cliente de XDSP y asigna los recursos necesarios para el procesamiento. Es similar a la API XDspConnect, salvo que acepta dos parámetros adicionales, maximumStreamCount y maximumChannelCount, para ayudar a reducir la memoria total que usa la API. Hay un límite global de 8 clientes de XDSP activos simultáneamente.

## Sintaxis

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

### Parámetros

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

Búfer contiguo que asigna un autor de llamada de XDSP para usarlo para pasar los datos de entrada y recuperar los datos de salida. Para obtener más detalles, consulte la sección **Comentarios** a continuación.

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

Longitud del *baseBuffer*, en bytes. Esta longitud debe ser de al menos 64 KB y no más de 500 MB.

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

Representa la duración total de la duración de todas las respuestas al impulso individuales que se activarán simultáneamente en este cliente. *aggregateImpulseResponseInSeconds* debe establecerse en un valor mayor que cero para [XDspProcessType::Convolution](/reference/audio/xdspaudio/enums/xdspprocesstype); de lo contrario, debe ser cero. Hay un límite global de 128 segundos de respuesta al impulso agregada entre todos los clientes de XDSP.

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

Número máximo de secuencias que pueden estar activas en un momento dado para este XDspClientHandle. Este número no puede superar 256. XDspActivate devuelve XDSP\_E\_NO\_DEVICE\_RESOURCES si se supera este número.

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

Puede ser 1 (para secuencias mono) o 2 (para secuencias estéreo). Esta API devuelve E\_INVALIDARG si se usa cualquier otro valor.

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

Identificador de un cliente de XDSP que debe usarse para activar secuencias mediante [XDspActivate](/reference/audio/xdspaudio/functions/xdspactivate) y desconectar el cliente del servidor de hardware mediante [XDspDisconnect](/reference/audio/xdspaudio/functions/xdspdisconnect).

### Valor devuelto

Tipo: HRESULT

Si el método se ejecuta correctamente, devuelve S\_OK. Si el método falla, devuelve uno de los siguientes códigos (lista parcial):

| Código devuelto                                      | Descripción                                                                                                                                                                                          |
| ---------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| E\_INVALIDARG                                        | Uno o varios de los argumentos no son válidos.                                                                                                                                                       |
| E\_OUTOFMEMORY                                       | Error de asignación de memoria.                                                                                                                                                                      |
| XDSP\_E\_MAX\_CLIENTS\_EXCEEDED                      | Ya se ha creado el número máximo de XDspClients.                                                                                                                                                     |
| XDSP\_E\_MAX\_AGGREGATE\_IMPULSE\_RESPONSE\_EXCEEDED | La llamada actual a [XDspConnect](/reference/audio/xdspaudio/functions/xdspconnect) hará que XDSP supere la longitud agregada máxima admitida de respuesta al impulso y, por lo tanto, no es válida. |

## Comentarios

Si la llamada se realiza correctamente, el autor de la llamada puede usar el *baseBuffer* para pasar los datos de entrada y recuperar los datos de salida de la secuencia mediante los parámetros de [XDspCommand](/reference/audio/xdspaudio/structs/xdspcommand). Si se usan envolventes, este búfer también debe tener en cuenta los búferes para almacenar los parámetros de la envolvente. Consulte [Información general de las envolventes mediante la API de XDSP](/build/console-features/audio/overviews/xdsp-overview-enveloping) para obtener más información sobre las envolventes.

Se debe llamar a esta función antes de activar secuencias de XDSP para registrar un fragmento grande de memoria suficiente para contener varias secuencias de audio completas para usarlas como entrada, varios búferes de salida para todas las secuencias de XDSP que se activarán mediante [XDspActivate](/reference/audio/xdspaudio/functions/xdspactivate) y varios búferes multiplicadores de bloques que pueden usarse como parte de [XDspCommand](/reference/audio/xdspaudio/structs/xdspcommand) para el tipo de procesamiento [XDspProcessType::ForwardFourierTransform](/reference/audio/xdspaudio/enums/xdspprocesstype). Tenga en cuenta los requisitos de tamaño mínimo y máximo para este búfer, como se ha indicado anteriormente. Si esta llamada se realiza correctamente, todas las secuencias de XDSP pueden acceder a cualquier parte de este fragmento de memoria.

Esta memoria debe asignarse mediante XMemAlloc() con estos atributos: **XALLOC\_MEMTYPE\_PHYSICAL\_CACHEABLE**, **XALLOC\_PAGESIZE\_64KB**, **XALLOC\_ALIGNMENT\_64K**

Estos atributos deben establecerse mediante **MAKE\_XALLOC\_ATTRIBUTES()**.

Un ejemplo de esto es el siguiente:

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

*allocatorId* en el ejemplo anterior debe reemplazarse por el identificador de asignador correcto que use el título.

Corresponde al autor de la llamada particionar y reciclar *baseBuffer* para contener diferentes secuencias de entrada y búferes de salida para varias secuencias. La *impulseResponse* no tiene por qué proceder de este *baseBuffer* y puede proceder de cualquier memoria asignada por el autor de la llamada.

La memoria a la que apunta *baseBuffer* no debe liberarse hasta que se llame a [XDspConnect](/reference/audio/xdspaudio/functions/xdspconnect).

Todos los punteros de memoria que se pasan a la [API de XDSP](/reference/audio/xdspaudio/xdspaudio_members) deben estar alineados a 16 bytes.

Si la llamada se realiza correctamente, se devolverá un [XDspClientHandle](/reference/audio/xdspaudio/handles/xdspclienthandle) válido para usarlo con las llamadas a [XDspActivate](/reference/audio/xdspaudio/functions/xdspactivate) y [XDspDisconnect](/reference/audio/xdspaudio/functions/xdspdisconnect).

## Requisitos

**Encabezado:** XDspAudio.h

**Biblioteca:** Chad.lib

**Plataformas compatibles:** XBOX Series X|S

## Documentación conceptual

* [Información general de las envolventes de XDSP](/build/console-features/audio/overviews/xdsp-overview-enveloping)
* [Información general de una convolución de secuencia única con envolvente mediante la API de XDSP](/build/console-features/audio/overviews/xdsp-overview-single-stream-convolution-with-envelope)
* [Información general de una convolución de secuencia única mediante la API de XDSP](/build/console-features/audio/overviews/xdsp-overview-single-stream-convolution)
* [Información general de XDSP](/build/console-features/audio/overviews/xdsp-overview)

## Consulte también

[XDSP](/reference/audio/xdspaudio/xdspaudio_members)\
[XDSPConnect](/reference/audio/xdspaudio/functions/xdspconnect)\
[XDspDisconnect](/reference/audio/xdspaudio/functions/xdspdisconnect)\
[Errores de XDSP](/reference/audio/xdspaudio/enums/xdsperrors)\
[Información general de una convolución de secuencia única mediante la API de XDSP](/build/console-features/audio/overviews/xdsp-overview-single-stream-convolution)\
[Información general de una FFT/IFFT de secuencia única mediante la API de XDSP](/build/console-features/audio/overviews/xdsp-overview-single-stream-fft-ifft)\
[Información general de una convolución de secuencia única con envolvente mediante la API de XDSP](/build/console-features/audio/overviews/xdsp-overview-single-stream-convolution-with-envelope)


## Related topics

- [XDspConnect](/es/reference/audio/xdspaudio/functions/xdspconnect.md)
- [Información general de XDSP](/es/build/console-features/audio/overviews/xdsp-overview.md)
- [Información general sobre la envolvente de XDSP](/es/build/console-features/audio/overviews/xdsp-overview-enveloping.md)
- [Información general de una convolución de secuencia única mediante la API XDSP](/es/build/console-features/audio/overviews/xdsp-overview-single-stream-convolution.md)
- [Convolución de secuencia única con envolvente mediante la API XDSP](/es/build/console-features/audio/overviews/xdsp-overview-single-stream-convolution-with-envelope.md)
