Может ли аудиодрайвер Windows находиться поверх стандартного драйвера Windows и обрабатывать его вывод? - PullRequest
2 голосов
/ 06 декабря 2010

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

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

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

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

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

1 Ответ

2 голосов
/ 06 декабря 2010

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

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

...