File systems driver design guide
This section of the WDK provides design guidelines related to file systems and filter drivers. See the programming reference for reference pages.
File systems in Windows are implemented as file system drivers working above the storage system.
Every system-supplied file system in Windows is designed to provide reliable data storage with varying features to meet the user's requirements. Standard file systems available in Windows include NTFS, ExFAT, UDF, and FAT32. A comparison of features for each of these file systems is shown in File System Functionality Comparison. Additionally, the Resilient File System (ReFS), available on Windows Server 2012 and later versions, offers scalable large volume support and the ability to detect and correct data corruption on disk.
Developing a new file system driver is almost always unnecessary, and requirements/specifications for new file system drivers are not predictable. To that end, this design guide does not cover file system development. If you do need to develop a new file system driver beyond those available in Windows, sample code is available as a model (see below).
File system filter drivers
A file system filter driver, or minifilter, intercepts requests targeted at a file system or another file system filter driver. By intercepting the request before it reaches its intended target, a minifilter can extend or replace functionality provided by the original target of the request. Examples of filter drivers include:
- Anti-virus filters
- Backup agents
- Encryption products
Filter driver developers use the system-supplied Filter Manager, which provides a framework for developing filter drivers without having to manage all the complexities of file I/O. The Filter Manager simplifies the development of third-party filter drivers and solves many of the problems with the legacy filter driver model, such as the ability to control load order through an assigned altitude.
File system and filter sample code
A number of Windows driver samples are available, including samples for file system development and file system filter driver development. See Windows driver samples for a complete list.
File system filter driver certification
Certification information for File Systems and File System Filter Drivers is found in the Windows Hardware Lab Kit (HLK). Tests for File Systems and File System Filter Drivers are found in the Filter.Driver category of the HCK.
Along with this documentation and the sample code mentioned above, OSR offers a variety of resources for file system filter development, including seminars and community discussion forums such as the NTFDS forum.