Filter Drivers (Compact 7)
3/12/2014
Filter drivers are an optional type of driver that filters I/O requests for a device, a class of devices, or a bus. Filter drivers are used in addition to bus or function drivers, and filter the I/O requests between the bus driver and the bus, or the function driver and the individual device.
To add this feature to your OS, see Filter Driver Reference.
Bus Filter Drivers
Bus filter drivers typically add value to a bus and are supplied by Microsoft or a system OEM. Bus filter drivers are optional. There can be any number of bus filter drivers for a bus.
A bus filter driver could, for example, implement proprietary enhancements to standard bus hardware.
For devices described by an ACPI BIOS, the power manager inserts a Microsoft-supplied ACPI filter (bus filter driver) above the bus driver for each such device. The ACPI filter carries out device power policy and powers on and off devices. The ACPI filter is transparent to other drivers and is not present on non-ACPI machines.
Lower-Level Filter Drivers
Lower-level filter drivers typically modify the behavior of device hardware. They are typically supplied by IHVs and are optional. There can be any number of lower-level filter drivers for a device.
A lower-level device filter driver monitors and/or modifies I/O requests to a particular device. Typically, such filters redefine hardware behavior to match expected specifications.
A lower-level class filter driver monitors and/or modifies I/O requests for a class of devices. For example, a lower-level class filter driver for mouse devices could provide acceleration, performing a nonlinear conversion of mouse movement data.
Upper-Level Filter Drivers
Upper-level filter drivers typically provide added-value features for a device. Such drivers are usually provided by IHVs and are optional. There can be any number of upper-level filter drivers for a device.
An upper-level device filter driver adds value for a particular device. For example, an upper-level device filter driver for a keyboard could enforce additional security checks.
An upper-level class filter driver adds value for all devices of a particular class.