[Microsoft Home][Products][Search][Support][Shop][Write Us] [Microsoft Home] ---------------------------------------------------------------------------- Windows NT IFS Kit Last updated: January 24, 1997 This is the home page for the Microsoft® Windows NT® Installable File System (IFS) Kit, a developer's kit for the kernel mode file system and file system filter driver models. This kit provides all of the necessary materials for developers to write file systems and file system filters. See the following for additional information. * Background * Target Audience * Goals * Kit Contents * Mailing List * Technical Support * Documentation * Prerequisites * Pricing * Releases * Availability * Feedback Address ------------------------------------------------------------------ Background [Back to Top] A file system is a software component that manages files on a disk or other local storage device (CD-ROM, tape, etc.). There are two main types of file system drivers, local (media-based) and remote (network-based). These major types, and some significant variants, are briefly described below. A Windows NT file system driver is implemented as a kernel-mode driver. In addition to the I/O request packet (IRP) interface exposed in the Windows NT Device Driver Kit (DDK), a file system driver must access newly exposed or additional functionality of already exposed system components. Examples of these components include, but are not limited to, 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. These file systems talk to the local storage drivers for I/O. Examples of local file systems include, but are not limited to, NTFS, FAT, and CDFS. Remote file systems are necessary when a client obtains data from a remote machine. This is generally done by asking a remote server to send the data. To make the network connection/ file operations look like local file operations, network file systems are accessed through a file system on the client machine, often called a redirector or a requestor. The redirector translates these requests into a client/server network protocol transmitted across the network media. (By contrast, the remote machine's server is using local media file systems to access the data on its local storage devices). A Windows NT redirector must be a file system to make remote file handles usable; otherwise there are breakages in how remote file handles work in other system calls. Various redirector/server network protocols are used. The most common are probably Microsoft Networking (SMB/CIFS), Novell Netware (NCP), and Sun NFS (WebNFS). See the CIFS Home Page for more information on CIFS. Distributed file systems are a type of remote file system that attempts to unify several file systems for different media into a single view. They take the various network file systems and combine them into a single logical network file system. Microsoft DFS (SMB-based) is another example (this DFS is a different implementation than the Transarc version). Other common distributed file systems include Transarc DFS, a version of the Andrew File System (AFS). See the DFS Home Page for more information on DFS. Hierarchical Storage, or Hierarchical Storage Management (HSM), solutions use file system and file system filter interfaces to provide the support for remote and offline file storage, usually providing the illusion of infinite storage. In many HSM scenarios, the single logical storage media is actually stored in many physical storage locations that can include several network servers, jukebox servers for disks/CDs that are only online when requested, etc. A file system filter is a driver layer that sits above a file system driver stack. This filter interface allows a vendor to "hook" a file system, and intercept I/O going between the operating system and the underlying drivers. The filter can pass the data on unmodified, modify the data, redirect it somewhere else, or take some other form of driver-defined operation. There are many diverse kinds of applications might want to filter a file system. Examples include, but are not limited to, encryption, compression, and virus protection. Filter-based solutions generally work on top of existing file systems and their developers do not want/need to write their own file systems. For more general information on Windows NT and file systems, read the books Inside Windows NT and Inside the Windows NT File System, both by Helen Custer and available from Microsoft Press. ------------------------------------------------------------------ Target Audience [Back to Top] This kit targets the following two Windows NT kernel mode driver developer audiences. * The first audience is for file system developers, who want to implement a file system under Windows NT. For this audience, the kit includes the interface for the file system driver model. * The second audience is for file system filter developers, who want to filter the I/O of existing file systems, for the needs of their application or driver. For this audience, the kit includes the interface for the file system filter driver model. ------------------------------------------------------------------ Goals [Back to Top] The primary goal of the Windows NT IFS Kit is to provide all of the materials necessary to design, build, test, and debug new file systems and new file system filters for Windows NT. However, the IFS Kit does not provide some things that developers might want. Some of these may be re-evaluated to become goals in future versions of the kit, depending on resources and feedback. The kit targets Windows NT but not Windows® 95, Windows CE or other operating systems. The kit is not intended to be a standalone kit; without possession of Microsoft Windows NT (Server or Workstation), the Windows NT DDK, the Win32 components of the Platform SDK (formerly the Win32 SDK), the IFS Kit is unusable. The kit does not provide on-disk formats or file system ioctls of existing file systems (FAT, NTFS, etc.). This kit does not provide all file system-related interfaces in Windows NT that are available to existing, built-in file systems. The kit does not provide interfaces to write a bootable file system (local or remote). The kit does not provide the interface to built-in file system utilities (CHKDSK, FORMAT, COMPRESS, CONVERT, FTDisk, etc.), nor the Utility DLL interfaces (UFAT.DLL, UNTFS.DLL, etc.). These only work for system-supplied file systems. Unless otherwise stated, it is assumed that all supplied utilities are not usable by third party file systems. Developers of new file systems will need to write their own utilities. ------------------------------------------------------------------ Kit Contents [Back to Top] This kit comes on a CD-ROM, which containing all tools, samples, headers and libraries necessary for file system development on all Windows NT architectures. Documentation is not available in the first release of this kit, see below for more details. The kit includes the Windows NT master IFS header file, ntifs.h. Current file system driver samples (some production, some sample) include: * CDFS, CD-ROM ISO-9660 media file system * FastFAT, a slightly modified version of the FAT media file system * Rdr2, a simplified sample version of the Rdr2-based SMB network redirector Current sample file system filter driver samples include: * Sfilter, a basic filter * Tfilter, a sample tracing filter * Efilter, a sample volume encryption filter (weak crypto) Other Windows NT file system driver or filter drivers that not explicitly listed are not included in this kit. Future releases of the kit may include additional tools useful in developing a file system. Future releases of the kit may include additional tests useful in testing the interfaces of the file system driver. For the current version of the kit, the I/O-related tests from the Windows NT DDK's Hardware Compatibility Tests (HCTs) helps to test many aspects of a file system driver. ------------------------------------------------------------------ Mailing List [Back to Top] There is a public peer-to-peer mailing list available to discuss Windows NT IFS issues. To subscribe, send e-mail to majordomo@atria.com, with a blank Subject line, with a message body consisting of one of these commands: subscribe ntfsd subscribe ntfsd-digest To unsubscribe, send e-mail to the same majordomo address, with a message body consisting of one of these commands: unsubscribe ntfsd unsubscribe ntfsd-digest Once subscribed -- regardless of digest or non-digest mode -- send messages to the mailing list by using the address ntfsd@atria.com. To read back issues of the mailing list, see ftp://ftp.atria.com/archives/ntfsd. To ensure a smooth flow of information in the mailing lists, please note a few common-sense guidelines. Avoid personal attacks, slurs, and excessive profanity in your messages, the purpose of the mailing lists is to exchange technical information and expertise. Keep the topic of messages relevant to the subject of the list. Do not use list of subscribers of this list for any commercial SPAM mailings. Microsoft does not offer formal support on this mailing list. Like most mailing lists, it is a public peer-to-peer discussion forum for. In addition, Microsoft monitors the mailing lists and will attempt to contribute and ensure accuracy of information. Thanks to Pure Atria for hosting this mailing list. ------------------------------------------------------------------ Technical Support [Back to Top] Initially, this kit will have no technical support available. Developers must use the existing sample code, headers, and peers to accomplish their goals. In the future, the Microsoft Technical Support (MTS) Developer Support team will provide fee-based support for the IFS Kit. This Developer Support team is ramping up for IFS Kit support now. Technical support will be offered as soon as possible. ------------------------------------------------------------------ Documentation [Back to Top] Initially, this kit will have no documentation available. Developers must use the existing sample code, headers, and peers to accomplish their goals. In the future, the kit will include documentation for the various interfaces provided in the kit (file system driver, file system filter driver, and rdr2-based miniredirectors). These documents are currently being written now. Documentation will be offered available as soon as possible. ------------------------------------------------------------------ Prerequisites [Back to Top] This kit requires the Microsoft Windows NT Device Driver Kit (DDK) and the Win32® Software Development Kit (SDK), both available with Microsoft Developer Network (MSDN) Professional membership. The kit requires the Microsoft Visual C 4.x compiler. Other C/C++ compilers might work with it, but have not been tested. In order to write file system or file system filter drivers, you must be fluent in Windows NT kernel-mode driver programming. ------------------------------------------------------------------ Pricing [Back to Top] This kit is priced at US$5,000. International orders may incur additional fees for taxes and duties. The initial release of this kit supports the file system interfaces of Windows NT 4.0. As required, free updates will be provided which will allow you to update your drivers for Windows NT 4.0 service packs and possible minor releases, up to and including the next major release of Windows NT. (Schedules and product releases are subject to change.) Other updates to the kit may include additional samples, documentation, tests, and other improvements to the kit. ------------------------------------------------------------------ Releases [Back to Top] The release schedule of the IFS Kit is closely tied to the Windows NT release schedule. If a change in the file system interface occurs in a Windows NT release, the IFS kit will have to be revised. In addition to major and minor releases, these updates can be as frequent as each service pack. The file system interfaces are more volatile than the normal application (the Win32 API and various COM interfaces) and driver (various interfaces in the DDK) interfaces. For these other application and driver interfaces, compatibility with older releases is often a major concern. However, for the file system interfaces, a greater concern is system performance and size, and compatibility is a lesser concern. Thus, products that use the file system interface generally need to be revised whenever these interfaces are updated. ------------------------------------------------------------------ Availability [Back to Top] The first version of this kit is expected to be available in a few weeks. When this kit becomes available, this page will include updated information on the kit's contents, and on how to obtain the kit. ------------------------------------------------------------------ Feedback Address [Back to Top] An e-mail address is available to send Windows NT IFS kit feedback. This alias is for developers to report bugs and send comments and suggestions on how to improve the kit. This is not a support mechanism. To use this alias, e-mail your feedback to ntifskit@microsoft.com. ------------------------------------------------------------------ [Microsoft Internet Explorer] [Image][Powered] © 1997 Microsoft Corporation. All rights reserved. Legal Notices.