Windows Driver Frameworks

Last updated

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
Operating system Microsoft Windows
Type Development tool, application programming interface
License MIT License [1]
Website learn.microsoft.com/en-us/windows-hardware/drivers/wdf/   OOjs UI icon edit-ltr-progressive.svg

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.

Contents

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:

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 systemKMDF 1.0KMDF 1.1KMDF 1.5KMDF 1.7KMDF 1.9KMDF 1.11KMDF 1.13KMDF 1.15KMDF 1.17KMDF 1.19KMDF 1.21KMDF 1.23KMDF 1.25KMDF 1.27KMDF 1.29KMDF 1.31KMDF 1.33
Windows 11 yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
Windows 10 2004yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes-
Windows 10 1903yesyesyesyesyesyesyesyesyesyesyesyesyesyesyes--
Windows 10 1809yesyesyesyesyesyesyesyesyesyesyesyesyesyes---
Windows 10 1803yesyesyesyesyesyesyesyesyesyesyesyesyes----
Windows 10 1709yesyesyesyesyesyesyesyesyesyesyesyes-----
Windows 10 1703yesyesyesyesyesyesyesyesyesyesyes------
Windows 10 1607yesyesyesyesyesyesyesyesyesyes-------
Windows 10 1511yesyesyesyesyesyesyesyesyes--------
Windows 10 yesyesyesyesyesyesyesyes---------
Windows 8.1 yesyesyesyesyesyesyes----------
Windows 8 yesyesyesyesyesyes-----------
Windows 7 yesyesyesyesyesyes-----------
Windows Server 2008 yesyesyesyesyesyes-----------
Windows Vista yesyesyesyesyesyes-----------
Windows Server 2003 yesyesyesyesyes------------
Windows XP yesyesyesyesyes------------
Windows 2000 -yesyesyes-------------
UMDF version history [4]
Operating systemUMDF 1.5UMDF 1.7UMDF 1.9UMDF 1.11UMDF 2.0UMDF 2.15UMDF 2.17UMDF 2.19UMDF 2.21UMDF 2.23UMDF 2.25UMDF 2.27UMDF 2.29UMDF 2.31UMDF 2.33
Windows 11 yesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
Windows 10 2004yesyesyesyesyesyesyesyesyesyesyesyesyesyes-
Windows 10 1903yesyesyesyesyesyesyesyesyesyesyesyesyes--
Windows 10 1809yesyesyesyesyesyesyesyesyesyesyesyes---
Windows 10 1803yesyesyesyesyesyesyesyesyesyesyes----
Windows 10 1709yesyesyesyesyesyesyesyesyesyes-----
Windows 10 1703yesyesyesyesyesyesyesyesyes------
Windows 10 1607yesyesyesyesyesyesyesyes-------
Windows 10 1511yesyesyesyesyesyesyes--------
Windows 10 1507yesyesyesyesyesyes---------
Windows 8.1 yesyesyesyesyes----------
Windows 8 yesyesyesyes-----------
Windows 7 yesyesyesyes-----------
Windows Server 2008 yesyesyesyes-----------
Windows Vista yesyesyesyes-----------
Windows Server 2003 yesyesyes------------
Windows XP yesyesyes------------
Windows 2000 -yesyes------------

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

See also

Related Research Articles

<span class="mw-page-title-main">Device driver</span> Software interface to attached devices

In the context of an operating system, a device driver is a computer program that operates or controls a particular type of device that is attached to a computer or automaton. A driver provides a software interface to hardware devices, enabling operating systems and other computer programs to access hardware functions without needing to know precise details about the hardware being used.

<span class="mw-page-title-main">Windows 95</span> Microsoft computer operating system released in 1995

Windows 95 is a consumer-oriented operating system developed by Microsoft as part of its Windows 9x family of operating systems. The first operating system in the 9x family, it is the successor to Windows 3.1, and was released to manufacturing on July 14, 1995, and generally to retail on August 24, 1995, almost three months after the release of Windows NT 3.51. Windows 95 is the first version of Microsoft Windows to include the Modern Windows Feel Windows 95 merged Microsoft's formerly separate MS-DOS and Microsoft Windows products, and featured significant improvements over its predecessor, most notably in the graphical user interface (GUI) and in its simplified "plug-and-play" features. There were also major changes made to the core components of the operating system, such as moving from a mainly cooperatively multitasked 16-bit architecture to a 32-bit preemptive multitasking architecture, at least when running only 32-bit protected mode applications.

<span class="mw-page-title-main">Windows 98</span> Microsoft personal computer operating system released in 1998

Windows 98 is a consumer-oriented operating system developed by Microsoft as part of its Windows 9x family of Microsoft Windows operating systems. It is the second operating system in the 9x line, as the successor to Windows 95. It was released to manufacturing on May 15, 1998, and generally to retail on June 25, 1998. Like its predecessor, it is a hybrid 16-bit and 32-bit monolithic product with the boot stage based on MS-DOS.

<span class="mw-page-title-main">Windows API</span> Microsofts core set of application programming interfaces on Windows

The Windows API, informally WinAPI, is the foundational application programming interface (API) that allows a computer program to access the features of the Microsoft Windows operating system in which the program is running. Programs access API functionality via dynamic-link library (DLL) technology.

Windows Embedded Compact, formerly Windows Embedded CE, Windows Powered and Windows CE, is a discontinued operating system developed by Microsoft for mobile and embedded devices. It was part of the Windows Embedded family and served as the foundation of several classes of devices including the Handheld PC, Pocket PC, Auto PC, Windows Mobile, Windows Phone 7 and others.

In computing, the Windows Driver Model (WDM) – also known at one point as the Win32 Driver Model – is a framework for device drivers that was introduced with Windows 98 and Windows 2000 to replace VxD, which was used on older versions of Windows such as Windows 95 and Windows 3.1, as well as the Windows NT Driver Model.

<span class="mw-page-title-main">Windows 9x</span> Discontinued series of Microsoft Windows operating systems

Windows 9x is a generic term referring to a line of discontinued Microsoft Windows operating systems from 1995 to 2000, which were based on the Windows 95 kernel and its underlying foundation of MS-DOS, both of which were updated in subsequent versions. The first version in the 9x series was Windows 95, which was succeeded by Windows 98 and then Windows Me, which was the third and last version of Windows on the 9x line, until the series was superseded by Windows XP.

<span class="mw-page-title-main">XNU</span> Computer operating system kernel

XNU is the computer operating system (OS) kernel developed at Apple Inc. since December 1996 for use in the Mac OS X operating system and released as free and open-source software as part of the Darwin OS, which, in addition to being the basis for macOS, is also the basis for Apple TV Software, iOS, iPadOS, watchOS, visionOS, and tvOS.

The Installable File System (IFS) is a filesystem API in MS-DOS/PC DOS 4.x, IBM OS/2 and Microsoft Windows that enables the operating system to recognize and load drivers for file systems.

<span class="mw-page-title-main">QEMU</span> Free virtualization and emulation software

QEMU is a free and open-source emulator. It emulates a computer's processor through dynamic binary translation and provides a set of different hardware and device models for the machine, enabling it to run a variety of guest operating systems. It can interoperate with Kernel-based Virtual Machine (KVM) to run virtual machines at near-native speed. QEMU can also do emulation for user-level processes, allowing applications compiled for one processor architecture to run on another.

<span class="mw-page-title-main">Architecture of Windows NT</span> Structure of the operating system

The architecture of Windows NT, a line of operating systems produced and sold by Microsoft, is a layered design that consists of two main components, user mode and kernel mode. It is a preemptive, reentrant multitasking operating system, which has been designed to work with uniprocessor and symmetrical multiprocessor (SMP)-based computers. To process input/output (I/O) requests, it uses packet-driven I/O, which utilizes I/O request packets (IRPs) and asynchronous I/O. Starting with Windows XP, Microsoft began making 64-bit versions of Windows available; before this, there were only 32-bit versions of these operating systems.

WinDbg is a multipurpose debugger for the Microsoft Windows computer operating system, distributed by Microsoft. Debugging is the process of finding and resolving errors in a system; in computing it also includes exploring the internal operation of software as a help to development. It can be used to debug user mode applications, device drivers, and the operating system itself in kernel mode.

The Windows Driver Kit (WDK) is a software toolset from Microsoft that enables the development of device drivers for the Microsoft Windows platform. It includes documentation, samples, build environments, and tools for driver developers. A complete toolset for driver development also need the following: a compiler Visual Studio, Windows SDK, and Windows HLK.

The Kernel-Mode Driver Framework (KMDF) is a driver framework developed by Microsoft as a tool to aid driver developers create and maintain kernel mode device drivers for Windows 2000 and later releases. It is one of the frameworks included in the Windows Driver Frameworks.

ntoskrnl.exe, also known as the kernel image, contains the kernel and executive layers of the Microsoft Windows NT kernel, and is responsible for hardware abstraction, process handling, and memory management. In addition to the kernel and executive layers, it contains the cache manager, security reference monitor, memory manager, scheduler (Dispatcher), and blue screen of death.

Windows Display Driver Model is the graphic driver architecture for video card drivers running Microsoft Windows versions beginning with Windows Vista.

Windows Vista has many significant new features compared with previous Microsoft Windows versions, covering most aspects of the operating system.

Windows NT is a proprietary graphical operating system produced by Microsoft as part of its Windows product line, the first version of which, Windows NT 3.1, was released on July 27, 1993. Originally made for the workstation, office, and server markets, the Windows NT line was made available to consumers with the release of Windows XP in 2001. The underlying technology of Windows NT continues to exist to this day with incremental changes and improvements, with the latest version of Windows based on Windows NT being Windows 11 in 2021.

User-Mode Driver Framework (UMDF) is a device-driver development platform first introduced with Microsoft's Windows Vista operating system, and is also available for Windows XP. It facilitates the creation of drivers for certain classes of devices.

<span class="mw-page-title-main">Longene</span> Linux distribution

Longene is a Linux-based operating system kernel intended to be binary compatible with application software and device drivers made for Microsoft Windows and Linux. As of 1.0-rc2, it consists of a Linux kernel module implementing aspects of the Windows kernel and a modified Wine distribution designed to take advantage of the more native interface. Longene is written in the C programming language and is free and open source software. It is licensed under the terms of the GNU General Public License version 2 (GPLv2).

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.