Developing Drivers with the Windows Driver Foundation: WDF Fundamentals
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
WDF Verification, Tracing, and Debugging Support 63
Serviceability and Versioning 63
For this chapter, you need …
User-Mode Driver Framework Design Guide
Kernel-Mode Driver Framework Design Guide
Writing Secure Code, Howard and LeBlanc
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.