Other names | Windows Driver Foundation |
---|---|
Developer(s) | Microsoft |
Stable release | win-10.0.17763.1 / 24 March 2019 |
Repository | |
Operating system | Microsoft Windows |
Type | Development tool, application programming interface |
License | MIT License [1] |
Website | learn |
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.
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.
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 | 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 | - | - | - | - | - | - | - | - | - | - | - | - | - |
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).