Windows Driver Frameworks

Windows Driver Frameworks
Developer(s) Microsoft
Stable release
1.13
Preview release
1.15
Development status Active
Operating system Windows
Available in English

The Windows Driver Frameworks (WDF), formerly the Windows Driver Foundation, are a set of Microsoft tools and libraries that aid in the creation of device drivers for Windows 2000 and later versions of Windows. It complements the Windows Driver Model, abstracting away much of the boilerplate complexity with writing Windows drivers.

The WDF consists of the Kernel-Mode Driver Framework (KMDF) and User-Mode Driver Framework (UMDF). These individual frameworks provide a new object-oriented programming model for Windows driver development. The primary goals of the WDF are conceptual scalability and reduced duplication, enabling developers to apply the same concepts across different driver types and reducing the code overhead required for drivers. This differs markedly from the Windows Driver Model (WDM) which requires driver developers to be fully familiar with many complex technical details to write a basic 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". In contrast, the Windows Driver Model depends on the driver writer to implement all aspects of the driver's behavior.

Varieties

There are three types of WDF drivers:

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

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.

Versions

KMDF

Operating system KMDF 1.0 KMDF 1.1 KMDF 1.5 KMDF 1.7 KMDF 1.9 KMDF 1.11 KMDF 1.13 KMDF 1.15 KMDF 1.17 KMDF 1.19
Windows 10 1607 yes yes yes yes yes yes yes yes yes yes
Windows 10 1511 yes yes yes yes yes yes yes yes yes -
Windows 10 yes yes yes yes yes yes yes yes - -
Windows 8.1 yes yes yes yes yes yes yes - - -
Windows 8 yes yes yes yes yes yes - - - -
Windows 7 yes yes yes yes yes yes - - - -
Windows Server 2008 yes yes yes yes yes yes - - - -
Windows Vista yes yes yes yes yes yes - - - -
Windows Server 2003 yes yes yes yes yes - - - - -
Windows XP yes yes yes yes yes - - - - -
Windows 2000 - yes yes yes - - - - -

UMDF

Operating system UMDF 1.5 UMDF 1.7 UMDF 1.9 UMDF 1.11 UMDF 2.0 UMDF 2.15 UMDF 2.17 UMDF 2.19
Windows 10 1607 yes yes yes yes yes yes yes yes
Windows 10 1511 yes yes yes yes yes yes yes -
Windows 10 yes yes yes yes yes yes - -
Windows 8.1 yes yes yes yes yes - - -
Windows 8 yes yes yes yes - - - -
Windows 7 yes yes yes yes - - - -
Windows Server 2008 yes yes yes yes - - - -
Windows Vista yes yes yes yes - - - -
Windows Server 2003 yes yes yes - - - - -
Windows XP yes yes yes - - - - -
Windows 2000 - - - - - - - -

-te: Bold "Yes" means: introduced with this version of Windows.

More details: KMDF version history,[1] UMDF version history.[2]

References

This article is issued from Wikipedia - version of the 9/7/2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.