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

建立連線，並為音訊處理單元 (XAPU) 配置必要的資源。

## 語法

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

### 參數

*params*   \_In\_\
類型: [XApuConnectInputParameters\*](/zh-TW/reference/audio/xapu/structs/xapuconnectinputparameters)

傳遞給 XApuConnect 以配置資源的參數。

*data*   \_Out\_\
類型: [XApuConnectOutputParameters\*](/zh-TW/reference/audio/xapu/structs/xapuconnectoutputparameters)

XApuConnect 傳回的參數。

*handle*   \_Outptr\_\
類型: XApuHandle\*

傳回之 XAPU 控制代碼的指標。呼叫其他 XAPU API 時，會使用此控制代碼來指出要操作的 XAPU 執行個體。

### 傳回值

類型: HRESULT

如果成功，會傳回 S\_OK；否則會傳回錯誤碼。

## 備註

呼叫端必須指定 XAPU 用戶端要執行的 [XApuProcessType](/zh-TW/reference/audio/xapu/enums/xapuprocesstype)。XAPU 執行個體在其存留期間只能處理一種類型的處理程序。若要執行兩個以上不同的處理程序，必須具現化兩個以上的 XAPU 執行個體。

在 [XApuConnectInputParameters](/zh-TW/reference/audio/xapu/structs/xapuconnectinputparameters) 中，呼叫端必須指定下列項目:

* XAPU 預期要同時處理的串流數目上限。
* 每個串流的佇列命令數目上限。
* 所有命令和串流所需的記憶體配置總量。這包括在串流數目上限乘以每個串流佇列命令數的範圍內，輸入、輸出和處理資料的總配置量。

如果呼叫成功，[XApuConnectOutputParameters::baseData](/zh-TW/reference/audio/xapu/structs/xapuconnectoutputparameters) 參數會指向一個記憶體區塊，呼叫端應使用此區塊來傳遞輸入資料並擷取串流的輸出資料。分割和回收此記憶體區塊由呼叫端負責。此配置會在呼叫 [XApuDisconnect](/zh-TW/reference/audio/xapu/functions/xapudisconnect) 時釋放。

設定 [XApuConnectOptions::EnableResultReadyEvent](/zh-TW/reference/audio/xapu/enums/xapuconnectoptions) 時，[XApuConnectOutputParameters::resultReadyEvent](/zh-TW/reference/audio/xapu/structs/xapuconnectoutputparameters) 會包含 Win32 事件控制代碼。此控制代碼會在呼叫 [XApuDisconnect](/zh-TW/reference/audio/xapu/functions/xapudisconnect) 時關閉。

此控制代碼會在呼叫 [XApuDisconnect](/zh-TW/reference/audio/xapu/functions/xapudisconnect) 時關閉。

不建議經常呼叫 [XapuConnect](/zh-TW/reference/audio/xapu/functions/xapuconnect) 和 [XApuDisconnect](/zh-TW/reference/audio/xapu/functions/xapudisconnect) 來啟動和停止串流，因為這些呼叫相當耗時，而且可能因記憶體片段化而導致資源損失。相反地，應在串流工作階段初始化時呼叫 [XapuConnect](/zh-TW/reference/audio/xapu/functions/xapuconnect) 一次，然後在串流期間使用 [XApuCommandType::Activate](/zh-TW/reference/audio/xapu/enums/xapucommandtype) 和 [XApuCommandType::Deactivate](/zh-TW/reference/audio/xapu/enums/xapucommandtype) 來啟動和停止串流。在串流工作階段結束時，應呼叫 [XApuDisconnect](/zh-TW/reference/audio/xapu/functions/xapudisconnect)。這適用於所有 XAPU 用戶端。

## 需求

**標頭:** xapu.h

**程式庫:** xapu.lib

**支援的平台:** XBOX Series X|S

## 概念文件

* [XAPU 概觀](/zh-TW/build/console-features/audio/overviews/xapu-overview)

## 另請參閱

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


## Related topics

- [XApuConnect](/reference/audio/xapu/functions/xapuconnect.md)
- [XApuConnectOutputParameters](/reference/audio/xapu/structs/xapuconnectoutputparameters.md)
- [XApuConnectInputParameters](/reference/audio/xapu/structs/xapuconnectinputparameters.md)
- [XApuConnectOptions](/reference/audio/xapu/enums/xapuconnectoptions.md)
