Windows Driver Foundation

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Windows Driver Foundation
Developer(s) Microsoft
Stable release 1.13
Development status Active
Operating system Windows
Available in English

Windows Driver Foundation (WDF) is a set of Microsoft tools that aid in the creation of device drivers for Windows 2000 and later versions of Windows. Windows Driver Foundation was introduced with Windows Vista and available downlevel for Windows 2000 and Windows XP. It complements Windows Driver Model.

The primary tools that comprise WDF are the Kernel Mode Driver Framework (KMDF) and User Mode Driver Framework (UMDF). These tool kits provide a new object-oriented programming model for Windows driver development. The primary goal of the Frameworks is "conceptual scalability", that is the characteristics of only requiring a driver developer to learn a few simple concepts to be able to write a simple driver, and to be able to incrementally learn more when more complex driver features are required. This differs markedly from the Windows Driver Model (WDM) which requires driver developers to be fully familiar with many complex technical details before writing even a simple driver.

Part of the key to achieving conceptual scalability is that KMDF and UMDF use an "opt-in" model. This model allows the developer to extend and override the default behavior of a canonical "good driver". This is in contrast to the older Windows Driver Model that depends on the driver writer to implement all aspects of the driver's behavior.

Varieties[edit]

The Framework comes in two varieties:

These share the underlying programming model. However, the kernel-mode framework uses a flat C API while the user-mode framework is based on C++ and a light version of COM.

WDF also includes a set of static verification tools for use by driver writers. These tools examine driver code for common errors and/or simulate the code of a driver in order to identify problems that are both difficult to detect and difficult to test for.

Tools[edit]

The Static Driver Verifier (SDV) is capable of performing very deep validation of code paths across functions and even through calls into WDM. SDV can find driver problems that span multiple function calls and even multiple operations. SDV is designed to be run when the driver is nearing completion. SDV analyzes only C files. C++ is not supported.

PREFast for Drivers (PFD) performs rather shallow analysis of driver operations. PFD can check for buffer overruns and other common programming errors likewise a number of driver specific problems. Because its scope of operation is within a single function, PFD's run time is much shorter than SDV. Therefore, PFD can be used throughout the driver development process. PREFast scans each function as an isolated unit. It does not do inter-procedural analysis. [1]

Versions[edit]

Operating system WDF 1.0 WDF 1.1 WDF 1.5 WDF 1.7 WDF 1.9 WDF 1.11 WDF 1.13
Windows 8.1  ?  ?  ?  ?  ?  ? yes
Windows 8 no no no no  ? yes  ?
Windows 7 no no no no yes yes  ?
Windows Server 2008 no no no yes yes yes  ?
Windows Vista no no yes yes yes yes  ?
Windows Server 2003 yes yes yes yes yes  ?  ?
Windows XP yes yes yes yes yes  ?  ?
Windows 2000 no yes yes yes yes  ?  ?

External links[edit]