Developing File Systems for Windows
Click Here for Seminar Outline (PDF)
This four day seminar deals with the issues of developing both file systems and file system filter drivers in the Windows environment, with both a discussion of broader operating systems issues for developers as well as practical issues related to current development. Upon completion of this course, you will have the basic information and technical understanding on how file systems work in the Windows environment. This seminar is taught only by experienced systems developers with experience developing file systems for Windows and other operating systems platforms.
Details
Length: 4 days
Format: Lecture
Cost: $3,650
Applicable Discounts: 2 week advanced payment - $200 off regular price; Multi-registration - contact a seminar coordinator
Current Schedule
Developing File Systems for Windows
Santa Clara, CA
26-29 Oct 2010
Target Audience
Students with a need to understand or develop file systems or file system filter drivers on Windows.
Prerequisites
Students must have an understanding of Windows kernel mode drivers, either via direct experience developing kernel mode drivers (including file system drivers) and/or by taking our Writing WDM Kernel Mode Drivers seminar. While not required, those students who have prior experience developing file systems and file system filter drivers will get a great deal out of this course because it will aid them in putting everything into context. Indeed, students who have previously taken this course prior to embarking upon their project have found it useful a second time after engaging in substantial development because it helps them "fill in the blanks".
Seminar Outline
- Review of the OS The course starts with a standard overview of the operating system and its components, but presented with a very file system centric perspective.
- Advanced I/O Manager Concepts This section reviews the I/O Manager and then focusing on advanced I/O Manager concepts essential to a solid understanding of Windows file systems. Topics include: a review of all I/O Manager operations, how the I/O Manager handles IRP completion processing, thread context issues, using worker threads, and the construction of IRPs.
- Naming Concepts This section delves into the arena of naming issues and incorporates a discussion of the Windows Object Manager, how names are actually parsed by the I/O Manager and Object Manager and thus how names are presented to the file systems. It also covers issues relating to mount points, drive letter maps, and network providers.
- The Virtual Memory System Because Windows file systems are tightly integrated with the VM system it is imperative for any course of study to cover the VM System. This section describes in detail the two key components of the VM system, the Memory Manager and the Cache Manager, and how they interact with file systems.
- File System Introduction Having reviewed the other components of the OS essential to an understanding of file systems, the course turns its attention to the specifics of how file systems on Windows are constructed. This section provides a "high level" view of file systems, including a description of the two types of file systems as well as file servers and filter drivers, both of which are closely related to Windows file systems.
- File System Fundamentals The balance of this course is constructed to cover, in detail, how file systems are constructed and operate within Windows. The focus here is very pragmatic in an attempt to facilitate the development of file systems by those attending the class. This section covers the basic data structures that are essential to file systems. It describes various objects (File, Section, Device, and Driver) which are of interest to Windows file systems as well as data structures (IRP, Common Header, VPB) used throughout Windows file systems. It ties these concepts together by reviewing actual code within the IFS Kit that shows these key data structures and functions.
- File System Core Functions This section of the course covers the core file system functions, of interest to all file system developers. This includes creation of new file object, and their subsequent cleanup and close operations as well as read, write, directory operations, delete, rename, and various other ancillary operations necessary for the proper implementation of a file system. This section includes review of relevant sections of the IFS Kit.
- Security File systems may optionally support the Windows security model, or implement their own security model. This section describes security in the context of the Windows security model using discretionary access control lists, system access control lists, owner, and group information. It also describes the process of validating access using the security reference monitor, and interfacing with auditing of I/O operations.
- File System Auxilliary Functions This section discusses various "auxiliary" file system functions that are implemented by some file systems. This includes support for extended attributes, quotas, byte range locks, name tunneling, etc. This section includes review of the relevant sections of the IFS Kit.
- Fast I/O Operations Microsoft has increasingly implemented a synchronous procedure call interface into certain portions of the OS, of which File Systems are a notable example. The Fast I/O operations were initially intended to improve the overall performance of read and write I/O operations but have since been used to target specific performance improvements for Lan Manager Server (which is a kernel-based file server on Windows. This section describes each of these operations and their basic implementation.
- Filter Drivers A file system filter driver is a kernel mode component which "attaches" to a file system in order to perform processing on I/O operations before and after they have been processed by the underlying file system. This section discusses some of the key issues involved in the development of file system filter drivers.
- Network Mini-Redirectors The IFS Kit includes a "min-redirector" model. This section of the course reviews the samples within the WDK and how mini-redirectors fit into the file system model.
- Windows and the Future of File System Development What changes are outstanding for Windows file systems development? How will they impact file systems development? This section describes some of the issues still waiting to be resolved in subsequent releases of Windows, and discusses the state of the art in terms of developing file systems.

