Windows Driver Frameworks

Windows Driver Frameworks (WDF)
Other namesWindows Driver Foundation
Developer(s)Microsoft
Stable release
win-10.0.17763.1 / 24 March 2019; 5 years ago (2019-03-24)
Repository
  • github.com/Microsoft/Windows-Driver-Frameworks Edit this at Wikidata
Operating systemMicrosoft Windows
TypeDevelopment tool, application programming interface
LicenseMIT License[1]
Websitelearn.microsoft.com/en-us/windows-hardware/drivers/wdf/ Edit this on Wikidata

Windows Driver Frameworks (WDF, formerly Windows Driver Foundation), is 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 Windows Driver Model, abstracting away much of the boilerplate complexity in writing Windows drivers.

WDF consists of Kernel-Mode Driver Framework (KMDF) and User-Mode Driver Framework (UMDF).[2] These individual frameworks provide a new object-oriented programming model for Windows driver development. The primary goals of WDF is 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, 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:

  • Kernel-Mode Driver Framework, for writing standard kernel-mode device drivers
  • User-Mode Driver Framework v1, for writing user-mode drivers using a C++ COM-based API
  • User-Mode Driver Framework v2, for writing user-mode drivers with syntactic parity to KMDF

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.

Versions

KMDF version history[3]
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 KMDF 1.21 KMDF 1.23 KMDF 1.25 KMDF 1.27 KMDF 1.29 KMDF 1.31 KMDF 1.33
Windows 11 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
Windows 10 2004 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes -
Windows 10 1903 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes - -
Windows 10 1809 yes yes yes yes yes yes yes yes yes yes yes yes yes yes - - -
Windows 10 1803 yes yes yes yes yes yes yes yes yes yes yes yes yes - - - -
Windows 10 1709 yes yes yes yes yes yes yes yes yes yes yes yes - - - - -
Windows 10 1703 yes yes yes yes yes yes yes yes yes yes yes - - - - - -
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 1507 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 version history[4]
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 UMDF 2.21 UMDF 2.23 UMDF 2.25 UMDF 2.27 UMDF 2.29 UMDF 2.31 UMDF 2.33
Windows 11 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
Windows 10 2004 yes yes yes yes yes yes yes yes yes yes yes yes yes yes -
Windows 10 1903 yes yes yes yes yes yes yes yes yes yes yes yes yes - -
Windows 10 1809 yes yes yes yes yes yes yes yes yes yes yes yes - - -
Windows 10 1803 yes yes yes yes yes yes yes yes yes yes yes - - - -
Windows 10 1709 yes yes yes yes yes yes yes yes yes yes - - - - -
Windows 10 1703 yes yes yes yes yes yes yes yes yes - - - - - -
Windows 10 1607 yes yes yes yes yes yes yes yes - - - - - - -
Windows 10 1511 yes yes yes yes yes yes yes - - - - - - - -
Windows 10 1507 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 - yes yes - - - - - - - - - - - -

Bold "Yes" means introduced with this version of Windows.

See also

References

  1. ^ "Windows Driver Frameworks". GitHub. Microsoft. Retrieved 2017-02-15.
  2. ^ Kernel Mode Driver Framework for Windows 7 Drivers
  3. ^ "KMDF Version History". Microsoft Docs. Microsoft. 1 October 2018.
  4. ^ "UMDF Version History". Microsoft Docs. Microsoft. 1 October 2018.

External links

  • Official website Edit this at Wikidata
  • Developing Drivers with the Windows Driver Foundation by Orwick and Smith
  • Windows Driver Kit
  • OSR Online, including many articles about WDF, KMDF, and Windows driver development
  • Introducing Windows Driver Framework at the Wayback Machine (archived 2016-01-25), 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
  • v
  • t
  • e
Graphics and UIAudioMultimediaWebData accessNetworkingCommunicationAdministration and
managementComponent modelLibrariesDevice driversSecurity.NETSoftware factoriesIPCAccessibilityText and multilingual
support
  • v
  • t
  • e
Microsoft development tools
Development
environments
Visual Studio
Others
Languages
APIs and
frameworks
Native
.NET
Device drivers
Database
SQL Server
SQL services
Other
Source control
Testing and
debugging
Delivery
Category
  • v
  • t
  • e
Overview
Software
Applications
Video games
  • Allegiance
Programming
languages
Frameworks,
development tools
Operating systems
Other
Licenses
Forges
Related
Category