Синхронизация двух или более потоков
Подпрограмма SetDmaEngineState устанавливает состояние одного или нескольких обработчиков DMA в одно из следующих значений: запущено, приостановлено, остановлено или сброшено. Если вызов этой подпрограммы указывает несколько подсистем DMA, то все подсистемы DMA синхронно переходят в состояние.
Для некоторых звуковых приложений требуется возможность синхронизации группы потоков. Например, аудиодрайв может использовать объединение кодеков для создания логического звукового устройства с объемным звуком, которое объединяет два звуковых кодека: один кодек управляет передними динамиками, а второй — задние динамики. В зависимости от возможностей кодеков может потребоваться звуковой драйвер, чтобы разделить исходный аудиопоток объемного звука на два потока, по одному для каждого кодека. Используя подпрограмму SetDmaEngineState для запуска и остановки потоков в унисон, эти два потока могут оставаться синхронизированными.
Если два потока не будут синхронизированы даже несколькими примерами, это может привести к нежелательным звуковым артефактам.
Подпрограмма SetDmaEngineState доступна в обеих версиях HD Audio DDI.
Драйвер класса UAA HD Audio не выполняет объединение кодека.