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

하드웨어 서버와 연결을 설정하고, XDSP 클라이언트 인스턴스를 만들고, 처리에 필요한 리소스를 할당합니다. API가 사용하는 전체 메모리 사용량을 줄이는 데 도움이 되는 두 개의 추가 매개 변수 maximumStreamCount와 maximumChannelCount를 사용한다는 점을 제외하고는 XDspConnect API와 유사합니다. 동시에 활성 XDSP 클라이언트는 전역적으로 8개로 제한됩니다.

## 구문

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

### 매개 변수

*baseBuffer*   \_In\_\
형식: float\*

XDSP 호출자가 입력 데이터를 전달하고 출력 데이터를 검색하는 데 사용하기 위해 할당하는 연속된 버퍼입니다. 자세한 내용은 아래의 **설명** 섹션을 참조하세요.

*baseBufferLength*   \_In\_\
형식: uint32\_t

*baseBuffer*의 바이트 단위 길이입니다. 이 길이는 최소 64KB이고 500MB를 초과해서는 안 됩니다.

*aggregateImpulseResponseInSeconds*   \_In\_\
형식: uint32\_t

이 클라이언트에서 동시에 활성화될 모든 개별 임펄스 응답 지속 시간의 전체 지속 시간을 나타냅니다. *aggregateImpulseResponseInSeconds*는 [XDspProcessType::Convolution](/reference/audio/xdspaudio/enums/xdspprocesstype)의 경우 0보다 큰 값으로 설정해야 하며, 그렇지 않으면 0이어야 합니다. 모든 XDSP 클라이언트에 걸쳐 통합 임펄스 응답은 전역적으로 128초로 제한됩니다.

*maximumStreamCount*   \_In\_\
형식: uint32\_t

이 XDspClientHandle에 대해 언제든 활성 상태일 수 있는 최대 스트림 수입니다. 이 개수는 256을 초과할 수 없습니다. 이 개수를 초과하면 XDspActivate가 XDSP\_E\_NO\_DEVICE\_RESOURCES를 반환합니다.

*maximumChannelCount*   \_In\_\
형식: uint32\_t

1(모노 스트림용) 또는 2(스테레오 스트림용)일 수 있습니다. 다른 값이 사용되면 이 API는 E\_INVALIDARG를 반환합니다.

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

[XDspActivate](/reference/audio/xdspaudio/functions/xdspactivate)를 통해 스트림을 활성화하고 [XDspDisconnect](/reference/audio/xdspaudio/functions/xdspdisconnect)를 통해 하드웨어 서버에서 클라이언트를 연결 해제하는 데 사용해야 할 XDSP 클라이언트에 대한 핸들입니다.

### 반환 값

형식: HRESULT

메서드가 성공하면 S\_OK를 반환합니다. 메서드가 실패하면 다음 코드 중 하나를 반환합니다(부분 목록).

| 반환 코드                                                | 설명                                                                                                                     |
| ---------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| E\_INVALIDARG                                        | 하나 이상의 인수가 유효하지 않습니다.                                                                                                  |
| E\_OUTOFMEMORY                                       | 메모리 할당에 실패했습니다.                                                                                                        |
| XDSP\_E\_MAX\_CLIENTS\_EXCEEDED                      | 최대 개수의 XDspClient가 이미 생성되었습니다.                                                                                         |
| XDSP\_E\_MAX\_AGGREGATE\_IMPULSE\_RESPONSE\_EXCEEDED | 현재 [XDspConnect](/reference/audio/xdspaudio/functions/xdspconnect) 호출이 XDSP가 지원하는 최대 통합 임펄스 응답 길이를 초과하게 만들며 유효하지 않습니다. |

## 설명

호출이 성공하면 호출자는 \_baseBuffer\_를 사용하여 [XDspCommand](/reference/audio/xdspaudio/structs/xdspcommand) 매개 변수를 통해 스트림의 입력 데이터를 전달하고 출력 데이터를 검색할 수 있습니다. 엔벨로핑이 사용되는 경우 이 버퍼는 엔벨로프 매개 변수를 저장하기 위한 버퍼도 고려해야 합니다. 엔벨로핑에 대한 자세한 내용은 [XDSP API를 사용한 엔벨로핑 개요](/build/console-features/audio/overviews/xdsp-overview-enveloping)를 참조하세요.

이 함수는 XDSP 스트림을 활성화하기 전에 호출해야 합니다. 이 호출은 [XDspActivate](/reference/audio/xdspaudio/functions/xdspactivate)를 통해 활성화될 모든 XDSP 스트림에 대해 여러 완전한 오디오 스트림을 입력으로, 여러 출력 버퍼로, 그리고 [XDspProcessType::ForwardFourierTransform](/reference/audio/xdspaudio/enums/xdspprocesstype) 처리 유형에 대한 [XDspCommand](/reference/audio/xdspaudio/structs/xdspcommand)의 일부로 사용될 수 있는 여러 블록 승수 버퍼로 저장하기에 충분한 크기의 하나의 큰 메모리 청크를 등록합니다. 이 버퍼의 최소 및 최대 크기 요구 사항에 유의하세요(위 참조). 이 호출이 성공하면 모든 XDSP 스트림은 이 메모리 청크의 어떤 부분에도 액세스할 수 있습니다.

이 메모리는 다음 특성을 갖는 XMemAlloc()을 통해 할당해야 합니다. **XALLOC\_MEMTYPE\_PHYSICAL\_CACHEABLE**, **XALLOC\_PAGESIZE\_64KB**, **XALLOC\_ALIGNMENT\_64K**

이러한 특성은 \*\*MAKE\_XALLOC\_ATTRIBUTES()\*\*를 사용하여 설정해야 합니다.

다음은 그 예입니다.

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

위의 예에서 \_allocatorId\_는 타이틀에서 사용하는 올바른 할당자 ID로 대체해야 합니다.

\_baseBuffer\_를 여러 스트림의 다른 입력 스트림과 출력 버퍼를 담기 위해 분할하고 재사용하는 것은 호출자에게 달려 있습니다. \_impulseResponse\_는 이 \_baseBuffer\_에서 가져올 필요가 없으며 호출자가 할당한 어떤 메모리에서도 가져올 수 있습니다.

\_baseBuffer\_가 가리키는 메모리는 [XDspConnect](/reference/audio/xdspaudio/functions/xdspconnect)가 호출될 때까지 해제해서는 안 됩니다.

[XDSP API](/reference/audio/xdspaudio/xdspaudio_members)에 전달되는 모든 메모리 포인터는 16바이트 정렬이어야 합니다.

호출이 성공하면 [XDspActivate](/reference/audio/xdspaudio/functions/xdspactivate) 및 [XDspDisconnect](/reference/audio/xdspaudio/functions/xdspdisconnect) 호출에 사용할 유효한 [XDspClientHandle](/reference/audio/xdspaudio/handles/xdspclienthandle)이 반환됩니다.

## 요구 사항

**헤더:** XDspAudio.h

**라이브러리:** Chad.lib

**지원 플랫폼:** XBOX Series X|S

## 개념 설명서

* [XDSP 엔벨로핑 개요](/build/console-features/audio/overviews/xdsp-overview-enveloping)
* [XDSP API를 사용한 엔벨로프 포함 단일 스트림 컨볼루션 개요](/build/console-features/audio/overviews/xdsp-overview-single-stream-convolution-with-envelope)
* [XDSP API를 사용한 단일 스트림 컨볼루션 개요](/build/console-features/audio/overviews/xdsp-overview-single-stream-convolution)
* [XDSP 개요](/build/console-features/audio/overviews/xdsp-overview)

## 관련 항목

[XDSP](/reference/audio/xdspaudio/xdspaudio_members)\
[XDSPConnect](/reference/audio/xdspaudio/functions/xdspconnect)\
[XDspDisconnect](/reference/audio/xdspaudio/functions/xdspdisconnect)\
[XDSP 오류](/reference/audio/xdspaudio/enums/xdsperrors)\
[XDSP API를 사용한 단일 스트림 컨볼루션 개요](/build/console-features/audio/overviews/xdsp-overview-single-stream-convolution)\
[XDSP API를 사용한 단일 스트림 FFT/IFFT 개요](/build/console-features/audio/overviews/xdsp-overview-single-stream-fft-ifft)\
[XDSP API를 사용한 엔벨로프 포함 단일 스트림 컨볼루션 개요](/build/console-features/audio/overviews/xdsp-overview-single-stream-convolution-with-envelope)


## Related topics

- [XDspConnect](/ko/reference/audio/xdspaudio/functions/xdspconnect.md)
- [XDSP 인벨로핑 개요](/ko/build/console-features/audio/overviews/xdsp-overview-enveloping.md)
- [XDSP 개요](/ko/build/console-features/audio/overviews/xdsp-overview.md)
- [XDSP API를 사용한 싱글 스트림 컨볼루션 개요](/ko/build/console-features/audio/overviews/xdsp-overview-single-stream-convolution.md)
- [XDSP API를 사용한 엔벨로프가 있는 싱글 스트림 컨볼루션](/ko/build/console-features/audio/overviews/xdsp-overview-single-stream-convolution-with-envelope.md)
