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:
- IRP_MJ_CLEANUP
- IRP_MJ_CLOSE
- IRP_MJ_CREATE
- IRP_MJ_DEVICE_CONTROL
- IRP_MJ_DIRECTORY_CONTROL
- IRP_MJ_FILE_SYSTEM_CONTROL
- IRP_MJ_FLUSH_BUFFERS
- IRP_MJ_INTERNAL_DEVICE_CONTROL
- IRP_MJ_LOCK_CONTROL
- IRP_MJ_PNP
- IRP_MJ_QUERY_EA
- IRP_MJ_QUERY_INFORMATION
- IRP_MJ_QUERY_QUOTA
- IRP_MJ_QUERY_SECURITY
- IRP_MJ_QUERY_VOLUME_INFORMATION
- IRP_MJ_READ
- IRP_MJ_SET_EA
- IRP_MJ_SET_INFORMATION
- IRP_MJ_SET_QUOTA
- IRP_MJ_SET_SECURITY
- IRP_MJ_SET_VOLUME_INFORMATION
- IRP_MJ_SHUTDOWN
- IRP_MJ_WRITE
- Any of the following FAST_IO_DISPATCH callback routines:
- FastIoCheckIfPossible
- FastIoRead
- FastIoWrite
- FastIoQueryBasicInfo
- FastIoQueryStandardInfo
- FastIoLock
- FastIoUnlockSingle
- FastIoUnlockAll
- FastIoUnlockAllByKey
- FastIoDeviceControl
- FastIoDetachDevice
- FastIoQueryNetworkOpenInfo
- MdlRead
- MdlReadComplete
- PrepareMdlWrite
- MdlWriteComplete
- FastIoReadCompressed
- FastIoWriteCompressed
- MdlReadCompleteCompressed
- MdlWriteCompleteCompressed
- FastIoQueryOpen
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.
Feedback
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Submit and view feedback for