Может ли аудиодрайвер Windows находиться поверх стандартного драйвера Windows и обрабатывать его вывод?

Можно ли написать драйвер для установки поверх другого драйвера, взять вывод нижнего драйвера и обработать его.

Я хотел написать драйвер, чтобы убедиться, что уровень громкости всегда был постоянным. По моему мнению, этот драйвер должен располагаться поверх драйвера звуковой карты и обрабатывать вывод перед передачей обратно в ОС для отправки динамикам.

Я читал о минипорте MS, и это, кажется, обеспечивает некоторые основные гарантированные воздействия.

Реализация уровня постоянной громкости - это не то, что меня действительно беспокоит в этом вопросе. Мне интересно, возможно ли вообще написать драйвер фильтра из-за отсутствия лучшего слова, чтобы я мог сделать некоторую постобработку звука.

Редактировать: ОК, я виноват, что не гуглю это первым, оказывается, это на самом деле называется драйвером фильтра, который заставляет меня выглядеть как придурок. Я был бы полным новичком в этом, хотя, поэтому любое хорошее руководство, или текст был бы оценен.

1 ответ

Решение

Для Windows Vista и более поздних версий написать такой аудио драйвер довольно сложно. Это связано с тем, что в аудиоустройствах Windows Vista в основном используется механизм ввода-вывода, при котором аудиодрайвер предоставляет буферы DMA непосредственно аудиоподсистеме или приложению. Таким образом, аудио движок записывает непосредственно в буферы DMA аудиоадаптера, и у драйвера фильтра нет возможности проверить сэмплы, отправляемые в аудио решение.

Для Vista и выше вы можете достичь того же результата с помощью sAPO, который является элементом обработки, который сопровождает пакет драйверов, который позволяет sAPO проверять и изменять аудиосэмплы.

Другие вопросы по тегам