Введение

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