Developing Drivers with the Windows Driver Foundation: WDF Fundamentals

  • 4/25/2007
This chapter from Developing Drivers with the Windows Driver Foundation introduces fundamental concepts for the design and implementation of WDF for UMDF and KMDF drivers.

The WDF driver model defines an object-oriented, event-driven environment for both kernel-mode (KMDF) and user-mode (UMDF) drivers. Driver code manages device-specific features, and a Microsoft-supplied framework calls the WDF driver to respond to events that affect the operation of its device.

This chapter introduces fundamental concepts for the design and implementation of WDF for UMDF and KMDF drivers.

In this chapter:

WDF and WDM 51

What Is WDF? 52

WDF Object Model 53

I/O Model 55

Plug and Play and Power Management 59

Security 61

WDF Verification, Tracing, and Debugging Support 63

Serviceability and Versioning 63

For this chapter, you need …

From …

WDK documentation

User-Mode Driver Framework Design Guide

http://go.microsoft.com/fwlink/?LinkId=79341

Kernel-Mode Driver Framework Design Guide

http://go.microsoft.com/fwlink/?LinkId=79342

Other

Writing Secure Code, Howard and LeBlanc

http://go.microsoft.com/fwlink/?LinkId=80091

WDF and WDM

WDF drivers serve the same purpose as WDM drivers: they handle communication between Windows and a device. Although WDF represents an entirely new driver model, it is not distinct from WDM. WDF functions as an abstraction layer between WDM and the WDF driver that simplifies the task of implementing robust, secure, and efficient drivers.

WDF provides a framework that handles the key tasks of a WDM driver: it receives and handles IRPs, manages Plug and Play and power state changes, and so on. The framework calls on the client WDF driver to provide device-specific functionality. Although WDF supports two frameworks—UMDF and KMDF—the high-level design and functionality of both frameworks are quite similar.

This chapter provides a conceptual overview of WDF and WDF drivers, focusing on the basic features that both WDF frameworks have in common.

Chapter 4 discusses how the two frameworks are implemented and the types of devices that they support.