Драйвер фильтра — это драйвер Microsoft Windows , который расширяет или изменяет функцию периферийных устройств или поддерживает специализированное устройство на персональном компьютере . Это драйвер, программа или модуль, который вставляется в существующий стек драйверов для выполнения некоторой определенной функции. Драйвер фильтра не должен каким-либо существенным образом влиять на нормальную работу существующего стека драйверов. Написанные Microsoft или поставщиком оборудования , любое количество драйверов фильтров [1] может быть добавлено в Windows. Драйверы фильтров верхнего уровня располагаются над основным драйвером для устройства (драйвером функции), в то время как драйверы фильтров нижнего уровня располагаются под драйвером функции и над драйвером шины .
Фильтры могут работать на устройствах определенной марки, например, на мыши или клавиатуре , или они могут выполнять некоторые операции на определенном классе устройств, например, на любой мыши или любой клавиатуре.
Центр разработки Windows — страницы «Оборудование» подробно описывают драйверы верхнего и нижнего фильтров. [2]
Например, драйвер универсальной USB-камеры (UVC) usbvideo.sys является драйвером функции , в то время как драйвер шины обрабатывает данные USB с устройств контроллера хоста. Фильтр нижнего уровня изменяет поведение оборудования камеры (например, отслеживает пакеты прерываний от коммутатора камеры) и вписывается между драйверами функции и шины. Фильтр верхнего уровня обычно обеспечивает дополнительные функции для камеры, такие как дополнительная обработка видеопотока (например, изменение цвета, идентификация объектов, применение наложений), и вписывается между драйвером функции и пользовательским приложением , которое подключено к камере.
Другой тип драйвера фильтра — это драйвер фильтра шины (например, USB, PCI, PCIe), который может быть добавлен поверх драйвера шины. Например, фильтр шины ACPI добавляется для поддержки управления питанием для каждого устройства.