Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

What is the difference between a mini driver and a filter driver? Are they the same thing?

share|improve this question
up vote 5 down vote accepted

A miniport driver is a driver for a specific USB, Audio, SCSI and network adapter device which relies on the rest of the driver stack to provide common functionality for devices of that type.

Filter drivers add extra functionality to a driver stack and require both bus and device function drivers to be of use.

For instance, A GigE Vision camera may well come with two drivers, a miniport camera driver and an ethernet filter driver.

  • The camera driver might make the camera look like a Windows camera, allowing you to capture still images and video as you would with a USB webcam.
  • The filter driver would give the camera driver low level access to the ethernet interface. This would allow the miniport driver to control prioritisation of ethernet packets, ensuring that non-video packets were given a lower priority than time critical video frame packets.

From the wikipedia page for Windows Driver Model:

Device function drivers

A function driver is the main driver for a device. A function driver is typically written by the device vendor and is required (unless the device is being used in raw mode). A function driver can service one or more devices.

  • Class drivers: These are a type of function drivers and can be thought of as built-in framework drivers that miniport and other class drivers can be built on top of. The class drivers provide interfaces between different levels of the WDM architecture. Common functionality between different classes of drivers can be written into the class driver and used by other class and miniport drivers. The lower edge of the class driver will have its interface exposed to the miniport driver, while the upper edge of top level class drivers is operating system specific. Class drivers can be dynamically loaded and unloaded at will. They can do class specific functions that are not hardware or bus-specific (with the exception of bus-type class drivers) and in fact sometimes only do class specific functions like enumeration.
  • Miniport drivers: These are also function drivers for USB, Audio, SCSI and network adapters. They should usually be source and binary compatible between Windows 98 and Windows 2000 and are hardware specific but control access to the hardware through a specific bus class driver.

Bus drivers

A bus driver services a bus controller, adapter, or bridge. Microsoft provides bus drivers for most common buses, such as PCI, PnPISA, SCSI, USB and FireWire. Each software vendor can create their own bus drivers if needed. A bus driver can service more than one bus if there is more than one bus of the same type on the machine.

Filter drivers

Filter drivers are optional drivers that add value to or modify the behavior of a device and may be non-device drivers. A filter driver can also service one or more devices. Upper level filter drivers sit above the primary driver for the device (the function driver), while lower level filter drivers sit below the function driver and above the bus driver.

  • Driver service: This is a type of kernel-level filter driver implemented as a Windows service that enables applications to work with devices.
share|improve this answer
Great answer thx! – HighLife Jul 12 '11 at 15:47
I would have, but I don't have enough reputation yet :P – HighLife Jul 12 '11 at 20:09

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .