# Filter driver

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/Filter_driver
> Markdown URL: https://mediated.wiki/source/Filter_driver.md
> Source: https://en.wikipedia.org/wiki/Filter_driver
> Source revision: 1281575337
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

{{Refimprove|date=February 2015}}
A '''filter driver''' is a [Microsoft Windows](/source/Microsoft_Windows) driver that extends or modifies the function of [peripheral device](/source/peripheral_device)s or supports a specialized device in the [personal computer](/source/personal_computer). It is a driver or program or module that is inserted into the existing [Driver Stack](/source/Driver_Stack) to perform some specific function. A filter driver should not affect the normal working of the existing driver stack in any major way. Written either by [Microsoft](/source/Microsoft) or the vendor of the [hardware](/source/computer_hardware), any number of filter drivers <ref>{{Cite web |url=https://msdn.microsoft.com/en-us/library/windows/hardware/ff545890(v=vs.85).aspx |title=Filter Drivers (Windows Drivers) |access-date=2015-02-03 |archive-date=2015-01-14 |archive-url=https://web.archive.org/web/20150114082414/http://msdn.microsoft.com/en-us/library/windows/hardware/ff545890(v=vs.85).aspx |url-status=live }}</ref> can be added to Windows. Upper level filter drivers sit above the primary driver for the device (the [function driver](/source/function_driver)), while lower level filter drivers sit below the function driver and above the [bus](/source/computer_bus) driver.

Filters may work on a certain brand of device such as a [mouse](/source/mouse_(computing)) or [keyboard](/source/computer_keyboard), or they may perform some operation on a class of devices, such as any mouse or any keyboard.

The Windows Dev Center - Hardware pages explain upper and lower filter drivers in detail.<ref>{{Cite web |url=https://msdn.microsoft.com/en-us/library/windows/hardware/ff564862(v=vs.85).aspx#possible_driver_layers |title=Types of WDM Drivers (Windows Drivers) |access-date=2015-02-03 |archive-date=2015-01-07 |archive-url=https://web.archive.org/web/20150107114219/http://msdn.microsoft.com/en-us/library/windows/hardware/ff564862(v=vs.85).aspx#possible_driver_layers |url-status=live }}</ref>

For example, the generic USB camera (UVC) driver ''usbvideo.sys'' is a '''function driver''', while the '''bus driver''' handles USB data from the host controller devices. A lower level filter modifies the behavior of the camera hardware (e.g. watching for interrupt packets from a camera switch) and fits between the function and bus drivers. An upper level filter typically provide added-value features for a camera, such as additional processing of the video stream (e.g. colour changes, identification of objects, applying overlays), and fit between the '''function driver''' and the '''user application''' that has connected to the camera.

Another type of filter driver is the bus (e.g. USB, PCI, PCIe) filter driver, which may be added on top of the bus driver. For example, an [ACPI](/source/Advanced_Configuration_and_Power_Interface) bus filter is added to support [power management](/source/power_management) for each device.

==See also==
*[Windows Driver Model](/source/Windows_Driver_Model)
*[Device driver](/source/Device_driver)
*[Advanced Configuration and Power Interface](/source/Advanced_Configuration_and_Power_Interface)
* [https://www.easefilter.com/kb/understand-minifilter.htm Windows File System Filter Driver]

==References==
{{Reflist}}

{{DEFAULTSORT:Filter Driver}}
Category:Device drivers
Category:Microsoft application programming interfaces

---
Adapted from the Wikipedia article [Filter driver](https://en.wikipedia.org/wiki/Filter_driver) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/Filter_driver?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
