DRV350 - Windows File System Drivers

Developers who need to write or maintain Windows File System Drivers.

Level: Advanced
Audience:

File system driver developers

Description:

In this seminar you will learn the required and optional components of full File System Drivers. 

We will begin with a review of the operating system architecture, the implementation of I/O requests, and other foundation principles. We will then introduce the components of a file system driver, starting with things that will be familiar from previous driver environments such as Dispatch routines and I/O completion callback routines, covering in some detail all of the required file system driver routines, and briefly introducing the optional routines.

We will then walk through a simple file system driver, presented to the class as a complete (though not necessarily error-free) source code example, and trace several common I/O paths through the code. The class will then load the sample driver on their machines and explore a few of its functions with the debugger. The subsequent seminar modules will use this sample driver as a starting point, both for discussion and for lab exercises.

Topics:

We will begin with a review of the operating system architecture, the implementation of I/O requests, and other foundation principles. We will then introduce the components of a file system driver, starting with things that will be familiar from previous driver environments such as Dispatch routines and I/O completion callback routines, covering in some detail all of the required file system driver routines, and briefly introducing the optional routines.

We will then walk through a simple file system driver, presented to the class as a complete (though not necessarily error-free) source code example, and trace several common I/O paths through the code. The class will then load the sample driver on their machines and explore a few of its functions with the debugger.

The subsequent seminar modules will use this sample driver as a starting point, both for discussion and for lab exercises.

  • Operating system kernel, I/O manager, and driver architecture overview
  • Key operating system facilities
  • File system driver model and architecture
  • Simple file system driver walkthrough
  • Installing a file system driver (the file system recognizer)
  • Building and debugging
  • Required file system driver functions
    • File create, close, cleanup, etc.
    • Directory and file name operations
    • File read and write functions
  • Fast I/O interface
  • Security
    • Windows security model and mechanisms
    • Auditing
    • Windows object manager and security reference monitor
  • Optional file system functions
    • Alternate data streams
    • Byte range locks
    • Oplocks
    • Implementing a file system-private security model
  • Additional design considerations
    • Memory usage
    • Exception and error handling
Prerequisites:

DRV201: Core WDM Device Drivers, or equivalent knowledge and experience

Operating systems supported: Windows 2000 through Windows 10/Windows Server 2012 R2
Durations and formats: 5 days with labs
3 days lecture only