File systems driver design guide
This section of the WDK provides conceptual information related to file systems and filter drivers (minifilters). For information about programming interfaces that your driver can implement or call, see the File System Programming Reference.
The file systems in Windows are implemented as file system drivers working above the storage system. Each of the file systems in Windows are designed to provide reliable data storage with varying features to meet the user’s requirements. A comparison of features for each of the standard file systems in Windows is shown in File System Functionality Comparison. New for Windows Server 2012 is ReFS. ReFS is a file system with scalable large volume support and the ability detect and correct data corruption on disk.
Creating a new file system driver in addition to those supplied in Windows is likely unnecessary. File Systems and File System Filter Drivers can provide any customized behavior required to modify the operation of existing file systems.
File System Filter Driver Development
A file system filter driver intercepts requests targeted at a file system or another file system filter driver. By intercepting the request before it reaches its intended target, the filter driver can extend or replace functionality provided by the original target of the request. Examples of File Systems and File System Filter Drivers include anti-virus filters, backup agents, and encryption products.
File system filtering services are available through the Filter Manager in Windows. The Filter Manager provides a framework for developing File Systems and File System 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 existing legacy filter driver model, such as the ability to control load order through an assigned altitude. A filter driver developed to the Filter Manager model is called a minifilter. Every minifilter driver has an assigned altitude, which is a unique identifier that determines where the minifilter is loaded relative to other minifilters in the I/O stack. Altitudes are allocated and managed by Microsoft.
File System Filter Driver Certification
Certification information for File Systems and File System Filter Drivers is found in the Windows Hardware Certification Kit (HCK). Tests for File Systems and File System Filter Drivers are found in the Filter.Driver category of the HCK.
File System Filter Driver Developer Resources
To request an altitude allocation from Microsoft, send an e-mail asking for an altitude assignment for your minifilter. Follow the instructions in Minifilter Altitude Request to submit a request.
To obtain an ID for a filter driver that uses reparse points follow the steps in Reparse Point Request.
You can subscribe to the NTFSD newsgroup for details about developing file systems and filter drivers. The group is found at NT File System Drivers Newsgroup.
OSR's "Developing File Systems for Windows" seminar explores developing file systems and File Systems and File System Filter Drivers. See Training for IFS Developers.