Поделиться через


Синхронизация двух или более потоков

Подпрограмма SetDmaEngineState устанавливает состояние одного или нескольких обработчиков DMA в одно из следующих значений: запущено, приостановлено, остановлено или сброшено. Если вызов этой подпрограммы указывает несколько подсистем DMA, то все подсистемы DMA синхронно переходят в состояние.

Для некоторых звуковых приложений требуется возможность синхронизации группы потоков. Например, аудиодрайв может использовать объединение кодеков для создания логического звукового устройства с объемным звуком, которое объединяет два звуковых кодека: один кодек управляет передними динамиками, а второй — задние динамики. В зависимости от возможностей кодеков может потребоваться звуковой драйвер, чтобы разделить исходный аудиопоток объемного звука на два потока, по одному для каждого кодека. Используя подпрограмму SetDmaEngineState для запуска и остановки потоков в унисон, эти два потока могут оставаться синхронизированными.

Если два потока не будут синхронизированы даже несколькими примерами, это может привести к нежелательным звуковым артефактам.

Подпрограмма SetDmaEngineState доступна в обеих версиях HD Audio DDI.

Драйвер класса UAA HD Audio не выполняет объединение кодека.