> ## Documentation Index
> Fetch the complete documentation index at: https://docs.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](https://docs.xbox.com/zh-CN/reference/audio/xapu/functions/xapuconnect.md) 返回的句柄。

*command*   \_In\_\
Type: [XApuCommandId\*](https://docs.xbox.com/zh-CN/reference/audio/xapu/structs/xapucommandid.md)

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

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

返回的命令总数。

### Return value

Type: HRESULT

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

## Remarks

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

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

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

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

下表将每个 [XApuCommandType](https://docs.xbox.com/zh-CN/reference/audio/xapu/enums/xapucommandtype.md) 映射到应传递给 **XApuEnqueueCommand** 的结构类型:

| XApuCommandType | 结构类型 |
| - | - |
| XApuCommandType::Activate | [XApuDecodeConvertActivateCommand](https://docs.xbox.com/zh-CN/reference/audio/xapu/structs/xapudecodeconvertactivatecommand.md) |
| XApuCommandType::Deactivate | [XApuCommandId](https://docs.xbox.com/zh-CN/reference/audio/xapu/structs/xapucommandid.md) |
| XApuCommandType::Process | [XApuDecodeConvertCommand](https://docs.xbox.com/zh-CN/reference/audio/xapu/structs/xapudecodeconvertcommand.md) |
| XApuCommandType::Notify | [XApuCommandId](https://docs.xbox.com/zh-CN/reference/audio/xapu/structs/xapucommandid.md) |
| XApuCommandType::Reset | [XApuCommandId](https://docs.xbox.com/zh-CN/reference/audio/xapu/structs/xapucommandid.md) |

## Requirements

**头文件:** xapu.h

**库:** xapu.lib

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

## See also

[XAPU](https://docs.xbox.com/zh-CN/reference/audio/xapu/xapu_members.md)


## Related topics

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