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;3 years ago (2019-03-24)
Repository
Operating system Microsoft Windows
Type Development tool, application programming interface
License MIT License [1]
Website docs.microsoft.com/en-us/windows-hardware/drivers/wdf/index   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.31
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 1507yesyesyesyesyesyesyesyes--------
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.31
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

In computing, 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> Operating system from Microsoft

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.1x, 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 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. The second operating system in the 9x line, is the successor to Windows 95, and 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 Microsoft's core set of application programming interfaces (APIs) available in the Microsoft Windows operating systems. The name Windows API collectively refers to several different platform implementations that are often referred to by their own names ; see the versions section. Almost all Windows programs interact with the Windows API. On the Windows NT line of operating systems, a small number use the Native API.

Windows Embedded Compact, formerly Windows Embedded CE, Windows Powered and Windows CE, is a discontinued operating system subfamily developed by Microsoft as part of its Windows Embedded family of products.

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> Series of Microsoft Windows computer operating systems

Windows 9x is a generic term referring to a series of Microsoft Windows computer operating systems produced 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.

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">Windows NT 4.0</span> Pre-emptive, graphical operating system by Microsoft

Windows NT 4.0 is a major release of the Windows NT operating system developed by Microsoft and oriented towards businesses. It is the direct successor to Windows NT 3.51, which was released to manufacturing on July 31, 1996, and then to retail on August 24, 1996. It was Microsoft's primary business-oriented operating system until the introduction of Windows 2000. Workstation, server and embedded editions were sold, and all editions feature a graphical user interface similar to that of Windows 95, which was superseded by Windows 98 and could still be directly upgraded by either Windows 2000 Professional or Windows Me.

<span class="mw-page-title-main">USB mass storage device class</span>

The USB mass storage device class is a set of computing communications protocols, specifically a USB Device Class, defined by the USB Implementers Forum that makes a USB device accessible to a host computing device and enables file transfers between the host and the USB device. To a host, the USB device acts as an external hard drive; the protocol set interfaces with a number of storage devices.

<span class="mw-page-title-main">Architecture of Windows NT</span> Overview of the architecture of the Microsoft Windows NT line of operating systems

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, they use 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. The current version is 1.27.

In computing ntoskrnl.exe, also known as kernel image, provides the kernel and executive layers of the Microsoft Windows NT kernel space, and is responsible for various system services such as hardware abstraction, process and memory management, thus making it a fundamental part of the system. It contains the cache manager, the executive, the kernel, the security reference monitor, the memory manager, scheduler (Dispatcher), and the text and some coding for the Stop Error Screen.

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

The Microsoft Windows operating system supports a form of shared libraries known as "dynamic-link libraries", which are code libraries that can be used by multiple processes while only one copy is loaded into memory. This article provides an overview of the core libraries that are included with every modern Windows installation, on top of which most Windows applications are built.

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

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.