About the IFS Kit
Updated: November 2, 2004
The primary goal of the Microsoft Windows Installable File System (IFS) Kit is to provide all of the materials necessary to design, build, and debug file systems and file system filter drivers for Windows 2000 and later operating systems. The information here provides a quick overview of what's available in the IFS Kit, plus links to key resources.
On This Page
Who Uses the IFS Kit?
Who Uses the IFS Kit?
The IFS Kit is provided to meet the specific needs of certain developers, including:
To write file system or file system filter drivers, you must be an experienced developer familiar with Windows kernel-mode driver programming.
If you are trying to create virtual files or directories to be viewed through the Windows Shell, the shell extension interfaces may be a better option. Shell extension modules are user-mode DLLs that are registered with the Windows Shell. For more information on these interfaces, please refer to the Platform SDK section of the MSDN Online Library.
What Does the IFS Kit Contain?
The IFS Kit is a superset of the Windows DDK. The DDK contains the headers, libraries, samples, documentation, and build environments for building a device driver for the Windows 2000, Windows XP and Windows Server 2003 platforms. In addition to what the DDK provides, the IFS Kit supplies all the headers and libraries that are needed to build a file system driver or file system filter driver using the DDK build environment. It also includes documentation and samples that are specific to file systems and file system filter drivers, including minifilters developed to the Filter Manager model.
The Windows DDK contains a complete build environment, including the Microsoft C/C++ compiler from Microsoft Visual Studio .NET. Other C/C++ compilers might work with the IFS Kit, but have not been tested.
File System Driver Samples. Current samples include:
Minifilter Driver Samples. Current samples include:
Legacy Filter Driver Samples. Current samples include:
What's Not in the IFS Kit?
The IFS Kit currently does not provide the following:
Note Unless otherwise stated, built-in utilities cannot be used with third-party file systems. Developers of new file systems must write their own utilities.
Filter Manager Information and Resources from Microsoft
The Filter Manager is a file system filter driver provided by Microsoft that 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.
For white papers and other related resources, see File System Filter Drivers on WHDC.
Quick FAQs and Resources for the IFS Kit
Q: How do I get the IFS Kit?
The IFS Kit is distributed as part of the Windows Driver Kit (WDK).
Q: Does WHQL offer "Designed for Windows" Logo Program testing for file system filter drivers?
WHQL testing is available currently only for anti-virus file system filter drivers. There is no testing program for other types of file system filter drivers or for file systems. However, most HCTs for the anti-virus file system filter drivers can also be used to test compatibility and reliability of other file systems and filter drivers, even though no WHQL test program covers these kinds of drivers.
Q: Does Microsoft offer support for the IFS Kit?
Yes, through regular Microsoft support programs for developers.
For more support resources, see "IFS Kit and File System Resources from OSR" later in this article.
IFS Kit and File System Resources from OSR
OSR Discussion Forum. For technical questions about developing file systems or file system filter drivers, use the public forum provided through the NTFSD mailing list sponsored by OSR. To subscribe to and use the forum, go to the OSR ListServer page and follow the instructions to join the NTFSD mailing list.
This is a public peer-to-peer discussion forum. Microsoft does not offer formal support on this mailing list, but does monitor and contribute to help ensure accuracy of information.
More IFS Kit and File System Development Resources from OSR
About the IFS Kit Documentation
The following list previews topics in the IFS Kit (in 2004), giving you a glimpse into both the documentation provided and the scope of activities supported by the IFS Kit.
About File Systems, File System Drivers, and File System Filters
A file system is a software component that manages files on a hard disk or other local storage device such as an optical drive. There are two main types of file system drivers: local (media-based) and remote (network-based).
A file system driver is implemented as a Windows kernel-mode driver. In addition to the IRP interface exposed in the Windows DDK, a file system driver must be integrated with different features of the system such as the cache manager, memory manager, security, synchronization, and locking.
Local file systems have their own on-media format and are used on local media by the operating system. Examples of local file systems include NTFS, FAT, and CDFS.
Remote file systems are necessary when a client obtains data from a remote computer. This is generally done by asking a remote server to send the data. To make the network connection/file operations appear as local file operations, network file systems are accessed through a file system on the Windows client computer. This file system is often called a redirector or a requestor. The redirector translates these requests into a client/server network protocol transmitted across the network media, using various redirector/server network protocols.
A file system filter driver is an optional driver that adds value to or modifies the behavior of another driver, specifically, a file system. It is a kernel-mode component that runs as part of the NTexecutive. A file system filter driver can filter I/O operations for one or more file systems or file system volumes. Depending on the nature of the driver, filter can mean log, observe, modify, or even prevent. Typical applications for file system filter drivers include antivirus, encryption, replication, and hierarchical storage management products. For more information, see File System Filter Drivers.
For more general information on Windows and NTFS, see Inside Windows 2000, Third Edition, by David Solomon and Mark Russinovich.