Filter Device Object Attached to a Volume

Note

For optimal reliability and performance, use file system minifilter drivers with Filter Manager support instead of legacy file system filter drivers. To port your legacy driver to a minifilter driver, see Guidelines for Porting Legacy Filter Drivers.

To filter a volume, a filter driver creates a filter device object and attaches it above the volume device object for the volume.

Types of I/O Requests That Are Sent to a Volume

A filter device object that is attached above a volume can generally expect to receive the following types of I/O requests:

File system filter device objects attached to volumes must pass all unrecognized or unwanted IRPs to the next-lower driver on the driver stack by default. In addition, they must implement FastIoDetachDevice.

On Windows XP and later, file system filter drivers shouldn't use any of the following fast I/O callback routines because they're obsolete.

  • AcquireForCcFlush
  • AcquireFileForNtCreateSection
  • AcquireForModWrite
  • ReleaseForCcFlush
  • ReleaseFileForNtCreateSection
  • ReleaseForModWrite

For more information, see the reference entry for FsRtlRegisterFileSystemFilterCallbacks.