同步两个或多个流
SetDmaEngineState 例程将一个或多个 DMA 引擎的状态设置为下列之一:正在运行、暂停、停止或重置。 如果对此例程的调用指定了多个 DMA 引擎,则所有 DMA 引擎都同步进行状态转换。
某些音频应用程序需要同步一组流。 例如,音频驱动程序可以使用编解码器组合来创建一个逻辑环绕音频设备,该设备联接两个音频编解码器:一个编解码器驱动前扬声器,另一个音频编解码器驱动后扬声器。 根据编解码器的功能,音频驱动程序可能需要将原始环绕音频流拆分为两个流,每个编解码器各有一个。 通过使用 SetDmaEngineState 例程以一致启动和停止流,这两个流可以保持同步。
即使有一些示例,允许这两个流脱离同步,也可能会导致不需要的音频项目。
SetDmaEngineState 例程在 HD Audio DDI 的两个版本中都可用。
UAA HD Audio 类驱动程序不执行编解码器组合。