> ## 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 クライアント インスタンスを作成し、処理に必要なリソースを割り当てます。これは XDspConnect API と似ていますが、API で使用されるメモリ全体を削減するために、追加の 2 つのパラメーター maximumStreamCount と maximumChannelCount を受け取る点が異なります。同時にアクティブな 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* の長さ (バイト単位)。この長さは 64 KB 以上、500 MB 以下でなければなりません。

*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                                        | 1 つ以上の引数が無効です。                                                                                                  |
| E\_OUTOFMEMORY                                       | メモリの割り当てに失敗しました。                                                                                                |
| XDSP\_E\_MAX\_CLIENTS\_EXCEEDED                      | 既に作成されている XDspClient の最大数に達しています。                                                                               |
| XDSP\_E\_MAX\_AGGREGATE\_IMPULSE\_RESPONSE\_EXCEEDED | 現在の [XDspConnect](/reference/audio/xdspaudio/functions/xdspconnect) の呼び出しは、XDSP が対応する集約インパルス応答長の最大値を超えるため、無効です。 |

## 解説

呼び出しが成功すると、呼び出し元は [XDspCommand](/reference/audio/xdspaudio/structs/xdspcommand) パラメーターを介して、ストリームの入力データを渡し、出力データを取得するために *baseBuffer* を使用できます。エンベロープを使用する場合、このバッファーはエンベロープ パラメーターを保存するためのバッファーも考慮する必要があります。エンベロープの詳細については、[XDSP API を使用したエンベロープの概要](/build/console-features/audio/overviews/xdsp-overview-enveloping)を参照してください。

この関数は、XDSP ストリームをアクティブ化する前に呼び出し、入力として使用する複数の完全なオーディオ ストリームを保持するのに十分な 1 つの大きなメモリ チャンク、[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](/ja-jp/reference/audio/xdspaudio/functions/xdspconnect.md)
- [XDSP エンベロープ処理の概要](/ja-jp/build/console-features/audio/overviews/xdsp-overview-enveloping.md)
- [XDSP の概要](/ja-jp/build/console-features/audio/overviews/xdsp-overview.md)
- [XDSP API を使用したシングル ストリーム コンボリューションの概要](/ja-jp/build/console-features/audio/overviews/xdsp-overview-single-stream-convolution.md)
- [XDSP API を使用したエンベロープ付きシングル ストリーム コンボリューション](/ja-jp/build/console-features/audio/overviews/xdsp-overview-single-stream-convolution-with-envelope.md)
