Windows Driver Foundation
From Wikipedia, the free encyclopedia
Windows Driver Foundation (WDF) is a Microsoft development group which is building tools to aid in the creation of device drivers for Windows 2000, Windows XP, Windows Server 2003, Windows Vista, and later editions of Windows.
The WDF team produces the Windows Driver Framework, a new programming model for Windows driver development. It is an "opt-in" model which allows the developer to extend and override the default behavior of a canonical "good driver". This is in contrast to the Windows Driver Model which depends on the driver writer to implement all aspects of the driver's behavior.
The Framework comes in two varieties:
- The Kernel-Mode Driver Framework, for writing standard kernel-mode device drivers.
- The User-Mode Driver Framework, for writing certain classes of driver that can run in user-mode.
These share the underlying programming model, though the kernel-mode framework uses a flat C API while the user-mode framework is based on COM.
The WDF team is also responsible for producing a set of compile time verification tools for driver writers. These tools simulate the code of a driver in order to identify problems that are both difficult to see and difficult to test for.
The Static Driver Verifier 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 performs more shallow analysis of driver operations. PFD can check for buffer overruns and other standard programming errors as well as a number of driver specific problems. Because it does not look across function calls PFD's run time is much shorter than SDV, and PFD can be used from the start of development.
[edit] References
- Windows Driver Foundation Homepage
- Windows Driver Kit
- Introducing Windows Driver Framework, written by well-known Windows driver developer, Walter Oney.
- Building and deploying a basic WDF Kernel Mode Driver, CodeProject
- Developing a WDF USB Kernel Mode Driver for the OSR USB FX2, CodeProject