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

# XApuEnqueueCommand

> XApuEnqueueCommand

# XApuEnqueueCommand

向 XAPU 命令队列提交单个命令。

## Syntax

```cpp theme={null}
HRESULT XApuEnqueueCommand(  
         XApuHandle handle,  
         XApuCommandId* command,  
         uint32_t* totalCommandCount  
)  
```

### Parameters

*handle*   \_In\_\
Type: XApuHandle

通过调用 [XApuConnect](/reference/audio/xapu/functions/xapuconnect) 返回的句柄。

*command*   \_In\_\
Type: [XApuCommandId\*](/reference/audio/xapu/structs/xapucommandid)

要提交到 XAPU 输入队列的命令。

*totalCommandCount*   \_Out\_opt\_\
Type: uint32\_t\*

返回的命令总数。

### Return value

Type: HRESULT

如果成功,则返回 S\_OK;否则,返回错误代码。

## Remarks

此调用速度很快,因为它不分配资源或处理数据,而只是将命令发送到硬件服务器。如果有 [XApuConnectInputParameters::maxQueuedCommandsPerStream](/reference/audio/xapu/structs/xapuconnectinputparameters) 个命令正在处理,则此调用将返回 [XAPU\_E\_QUEUE\_FULL](/reference/audio/xapu/enums/xapuerrors)。为避免此错误,调用方必须通过 [XApuDequeueResult](/reference/audio/xapu/functions/xapudequeueresult) 检索一个或多个结果。此调用是线程安全的,即可以从多个线程提交命令,但从多个线程调用并不能带来性能优势。

此调用还接受一个指向 uint32\_t 的指针以返回当前会话的 *totalCommandCount*。该数字表示自会话开始以来以及在调用 [XApuConnect](/reference/audio/xapu/functions/xapuconnect) 之后已成功提交的命令总数。该数字不会归零。

如果硬件服务器处于错误状态,[XApuEnqueueCommand](/reference/audio/xapu/functions/xapuenqueuecommand) 将返回 [XAPU\_E\_DEVICE\_FATAL\_ERROR](/reference/audio/xapu/enums/xapuerrors) 错误代码。在这种情况下,应断开所有 XAPU 客户端并重新连接。

如果此方法失败,将返回具有描述性的错误代码。

下表将每个 [XApuCommandType](/reference/audio/xapu/enums/xapucommandtype) 映射到应传递给 **XApuEnqueueCommand** 的结构类型:

| XApuCommandType             | 结构类型                                                                                               |
| --------------------------- | -------------------------------------------------------------------------------------------------- |
| XApuCommandType::Activate   | [XApuDecodeConvertActivateCommand](/reference/audio/xapu/structs/xapudecodeconvertactivatecommand) |
| XApuCommandType::Deactivate | [XApuCommandId](/reference/audio/xapu/structs/xapucommandid)                                       |
| XApuCommandType::Process    | [XApuDecodeConvertCommand](/reference/audio/xapu/structs/xapudecodeconvertcommand)                 |
| XApuCommandType::Notify     | [XApuCommandId](/reference/audio/xapu/structs/xapucommandid)                                       |
| XApuCommandType::Reset      | [XApuCommandId](/reference/audio/xapu/structs/xapucommandid)                                       |

## Requirements

**头文件:** xapu.h

**库:** xapu.lib

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

## See also

[XAPU](/reference/audio/xapu/xapu_members)


## Related topics

- [XApuCommandType](/zh-CN/reference/audio/xapu/enums/xapucommandtype.md)
- [XApuDecodeConvertCommand](/zh-CN/reference/audio/xapu/structs/xapudecodeconvertcommand.md)
- [XApuDecodeConvertActivateCommand](/zh-CN/reference/audio/xapu/structs/xapudecodeconvertactivatecommand.md)
- [XApuConnect](/zh-CN/reference/audio/xapu/functions/xapuconnect.md)
- [XApuDequeueResult](/zh-CN/reference/audio/xapu/functions/xapudequeueresult.md)
