Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

User-Mode Driver Framework

From Wikipedia, the free encyclopedia
Driver development platform for Microsoft Windows
User-Mode Driver Framework (UMDF)
Developer(s)Microsoft
Initial releaseOctober 12, 2004; 20 years ago (2004-10-12)
Stable release
2.27 / March 24, 2019; 6 years ago (2019-03-24)
Repositorygithub.com/microsoft/Windows-Driver-Frameworks
Written inC,C++
Operating systemMicrosoft Windows
TypeDevice-driver development platform
LicenseMIT License
Websitedocs.microsoft.com/en-us/windows-hardware/drivers/wdf/overview-of-the-umdf

User-Mode Driver Framework (UMDF) is a device-driver development platform first introduced withMicrosoft'sWindows Vistaoperating system, and is also available forWindows XP. It facilitates the creation of drivers for certain classes of devices.[1]

Overview

[edit]

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 dedicatedapplication 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 supporthot swapping via a bus technology such asUSB orFireWire.

According to Microsoft, UMDF drivers are simpler to write and debug than kernel-mode drivers.[2] However, UMDF would not be used for performance-intensive or highlystateful devices.

The first version of the UMDF was shipped as part ofWindows Media Player version 10 on 2004-10-12. Code-named "Crescent", it was designed to support theMedia Transfer Protocol driver, and no public interfaces or documentation were provided for it. Later, Microsoft decided to turn UMDF into a device driver development platform.[3]

Version history

[edit]

Architecture

[edit]

A UMDF Driver is a DLL based on Microsoft'sComponent Object Model (COM). However, UMDF does not use COM for loading, unloading, or controllingconcurrency; it only uses COM as aprogramming pattern, for example exploiting COM'sIUnknown interface. At startup, UMDF callsDllGetClassObject to get a pointer to anIClassFactory interface in the driver and then uses theCreateInstance method of the IClassFactory interface to create an instance of the driver callback object.

The driver object is an instance of the framework-providedIWDFDriver interface. The driver provides a set of callbacks via theIDriverEntry COM interface, which is the main entry point for driver customization.

See also

[edit]

References

[edit]
  1. ^Programming Drivers for the UMDF
  2. ^"Advantages of Writing UMDF Drivers".
  3. ^Charles Torre, Peter Wieland (2006-09-18)."Peter Wieland: User Mode Driver Framework".Channel 9. Microsoft. Retrieved2006-09-18.
  4. ^Microsoft Support."User-Mode Driver Framework version 1.11 update for Windows Vista, Windows Server 2008, Windows 7, and Windows Server 2008 R2". Microsoft. Retrieved2012-12-01.
  5. ^"User-Mode Driver Framework Frequently Asked Questions (Windows Drivers)". Microsoft. Retrieved2014-06-04.

External links

[edit]
Graphics and UI
Audio
Multimedia
Web
Data access
Networking
Communication
Administration and
management
Component model
Libraries
Device drivers
Security
.NET
Software factories
IPC
Accessibility
Text and multilingual
support
Overview
Software
Applications
Video games
Programming
languages
Frameworks,
development tools
Operating systems
Other
Licenses
Forges
Related
Retrieved from "https://en.wikipedia.org/w/index.php?title=User-Mode_Driver_Framework&oldid=1123804157"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp