User-Mode Driver Framework (UMDF) is a device-driver development platform first introduced with
Microsoft
Microsoft Corporation is an American multinational corporation, multinational technology company, technology corporation producing Software, computer software, consumer electronics, personal computers, and related services headquartered at th ...
's
Windows Vista
Windows Vista is a major release of the Windows NT operating system developed by Microsoft. It was the direct successor to Windows XP, which was released five years before, at the time being the longest time span between successive releases of ...
operating system
An operating system (OS) is system software that manages computer hardware, software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ef ...
, and is also available for
Windows XP
Windows XP is a major release of Microsoft's Windows NT operating system. It was release to manufacturing, released to manufacturing on August 24, 2001, and later to retail on October 25, 2001. It is a direct upgrade to its predecessors, Wind ...
. It facilitates the creation of drivers for certain classes of devices.
Programming Drivers for the UMDF
/ref>
Overview
Standard device drivers can be difficult to write because they must handle a very wide range of system and device states, particularly in a multithreaded software environment. Badly written device drivers can cause severe damage to a system (e.g., BSoD or data corruption) since all standard drivers have high privileges when accessing the kernel directly. The User-Mode Driver Framework insulates the kernel from the problems of direct driver access, instead providing a new class of driver with a dedicated application programming interface at the user level of interrupts and memory management. If an error occurs, the new framework allows for an immediate driver restart without impacting the system. This is particularly useful for devices that are intermittently connected to the system or support hot swapping
Hot swapping is the replacement or addition of components to a computer system without stopping, shutting down, or rebooting the system; hot plugging describes the addition of components only. Components which have such functionality are sai ...
via a bus technology such as USB or FireWire
IEEE 1394 is an interface standard for a serial bus for high-speed communications and isochronous real-time data transfer. It was developed in the late 1980s and early 1990s by Apple in cooperation with a number of companies, primarily Sony a ...
.
According to Microsoft, UMDF drivers are simpler to write and debug than kernel-mode drivers. However, UMDF would not be used for performance-intensive or highly stateful devices.
The first version of the UMDF was shipped as part of Windows Media Player
Windows Media Player (WMP) is the first media player and media library application that was developed by Microsoft for playing audio, video and viewing images on personal computers running the Microsoft Windows operating system, as well as ...
version 10 on 2004-10-12. Code-named "Crescent", it was designed to support the Media Transfer Protocol
The Media Transfer Protocol (MTP) is an extension to the Picture Transfer Protocol (PTP) communications protocol that allows media files to be transferred automatically to and from portable devices. Whereas PTP was designed for downloading phot ...
driver, and no public interfaces or documentation were provided for it. Later, Microsoft decided to turn UMDF into a device driver development platform.
Version history
* User-Mode Driver Framework 1.5-1.9, supports Windows XP
Windows XP is a major release of Microsoft's Windows NT operating system. It was release to manufacturing, released to manufacturing on August 24, 2001, and later to retail on October 25, 2001. It is a direct upgrade to its predecessors, Wind ...
and newer.
* User-Mode Driver Framework 1.11, supports Windows Vista
Windows Vista is a major release of the Windows NT operating system developed by Microsoft. It was the direct successor to Windows XP, which was released five years before, at the time being the longest time span between successive releases of ...
and later, and Windows Server 2008
Windows Server 2008 is the fourth release of the Windows Server operating system produced by Microsoft as part of the Windows NT family of the operating systems. It was released to manufacturing on February 4, 2008, and generally to retail on F ...
and later.
* User-Mode Driver Framework 2.0, which supports Windows 8.1 and newer.
Architecture
A UMDF Driver is a DLL based on Microsoft's Component Object Model (COM). However, UMDF does not use COM for loading, unloading, or controlling concurrency; it only uses COM as a programming pattern, for example exploiting COM's '' IUnknown'' interface. At startup, UMDF calls ''DllGetClassObject'' to get a pointer to an ''IClassFactory'' interface in the driver and then uses the ''CreateInstance'' method of the IClassFactory interface to create an instance of the driver callback object.
The driver object is an instance of the framework-provided ''IWDFDriver'' interface. The driver provides a set of callbacks via the ''IDriverEntry'' COM interface, which is the main entry point for driver customization.
See also
* Windows Driver Frameworks
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, abstract ...
(WDF)
* Kernel-Mode Driver Framework (KMDF)
References
External links
*
Peter Wieland's blog
– developer lead on the UMDF team at Microsoft
{{Microsoft FOSS
Device drivers
Free and open-source software
Microsoft application programming interfaces
Microsoft free software
Software using the MIT license
Windows-only free software