- Windows Driver Foundation
Infobox Software
name = Windows Driver Foundation
caption =
author =
developer =Microsoft
released =
latest release version = 1.7
latest release date =
latest preview version =
latest preview date =
operating system = Windows
platform =
language = English
status = Active
genre =
license =
website =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.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 as more complex driver features are required. This differs markedly from the Windows Driver Model (WDM) that 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
The Framework comes in two varieties:
* TheKernel-Mode Driver Framework , for writing standard kernel-mode device drivers.
* TheUser-Mode Driver Framework , for writing certain classes of driver that can run in user-mode.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 the 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
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.PREFast for Drivers (PFD) performs more shallow analysis of driver operations. PFD can check for buffer overruns and other common programming errors as well as 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.External links
* [http://www.microsoft.com/whdc/driver/wdf/default.mspx Windows Driver Foundation Homepage]
* [http://www.microsoft.com/whdc/devtools/WDK/default.mspx Windows Driver Kit]
* [http://www.osronline.com] OSR Online, including many articles about WDF, KMDF, and Windows driver development.
* [http://www.wd-3.com/archive/FrameworkIntro.htm Introducing Windows Driver Framework] , written by well-known Windows driver developer, Walter Oney.
* [http://www.codeproject.com/system/wdf_kmdf_basic.asp Building and deploying a basic WDF Kernel Mode Driver] , CodeProject
* [http://www.codeproject.com/system/kmdf_osr_usb_fx2.asp Developing a WDF USB Kernel Mode Driver for the OSR USB FX2] , CodeProject
Wikimedia Foundation. 2010.