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

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

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

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

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

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


person Matt    schedule 06.12.2010    source источник


Ответы (1)


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

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

person ReinstateMonica Larry Osterman    schedule 06.12.2010