Может ли аудиодрайвер Windows находиться поверх стандартного драйвера Windows и обрабатывать его вывод?
Можно ли написать драйвер для установки поверх другого драйвера, взять вывод нижнего драйвера и обработать его.
Я хотел написать драйвер, чтобы убедиться, что уровень громкости всегда был постоянным. По моему мнению, этот драйвер должен располагаться поверх драйвера звуковой карты и обрабатывать вывод перед передачей обратно в ОС для отправки динамикам.
Я читал о минипорте MS, и это, кажется, обеспечивает некоторые основные гарантированные воздействия.
Реализация уровня постоянной громкости - это не то, что меня действительно беспокоит в этом вопросе. Мне интересно, возможно ли вообще написать драйвер фильтра из-за отсутствия лучшего слова, чтобы я мог сделать некоторую постобработку звука.
Редактировать: ОК, я виноват, что не гуглю это первым, оказывается, это на самом деле называется драйвером фильтра, который заставляет меня выглядеть как придурок. Я был бы полным новичком в этом, хотя, поэтому любое хорошее руководство, или текст был бы оценен.
1 ответ
Для Windows Vista и более поздних версий написать такой аудио драйвер довольно сложно. Это связано с тем, что в аудиоустройствах Windows Vista в основном используется механизм ввода-вывода, при котором аудиодрайвер предоставляет буферы DMA непосредственно аудиоподсистеме или приложению. Таким образом, аудио движок записывает непосредственно в буферы DMA аудиоадаптера, и у драйвера фильтра нет возможности проверить сэмплы, отправляемые в аудио решение.
Для Vista и выше вы можете достичь того же результата с помощью sAPO, который является элементом обработки, который сопровождает пакет драйверов, который позволяет sAPO проверять и изменять аудиосэмплы.