Windows Driver Model

Windows Driver Model

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.

Overview

WDM drivers are layered in a complex hierarchy and communicate with each other via I/O request packets (IRPs). The Microsoft Windows Driver Model defined a unified driver model for the Windows 98 and Windows 2000 lines by standardizing requirements and reducing the amount of code that needed to be written. WDM drivers will not run on operating systems earlier than Windows 98 or Windows 2000, such as Windows 95, Windows NT 4.0 and Windows 3.1. By conforming to WDM, drivers can be binary compatible and source-compatible across Windows 98, Windows 98 Second Edition, Windows Me, Windows 2000, Windows XP, Windows Server 2003 and Windows Vista (for backwards compatibility) on x86-based computers. WDM drivers are designed to be forward-compatible so that a WDM driver can run on a version of Windows newer than what the driver was initially written for , but doing that would mean that the driver cannot take advantage of any new features introduced with the new version. WDM is generally not backward-compatible, that is, a WDM driver is not guaranteed to run on any older version of Windows. For example, Windows XP can use a driver written for Windows 2000 but will not make use of any of the new WDM features that were introduced in Windows XP. However, a driver written for Windows XP may or may not load on Windows 2000.

WDM exists in the intermediary layer of Windows 2000 kernel-mode drivers and was introduced to increase the functionality and ease of writing drivers for Windows. Although WDM was mainly designed to be binary and source compatible between Windows 98 and Windows 2000, this may not always be desired and so specific drivers can be developed for either operating system. WDM drivers can be classified into the following types and sub-types:

Device function drivers

A function driver is the main driver for a device. A function driver is typically written by the device vendor and is required (unless the device is being used in raw mode). A function driver can service one or more devices.
* Class drivers: These are a type of "function drivers" and can be thought of as built-in "framework" drivers that miniport and other class drivers can be built on top of. The class drivers provide interfaces between different levels of the WDM architecture. Common functionality between different classes of drivers can be written into the class driver and used by other class and miniport drivers. The lower edge of the class driver will have its interface exposed to the miniport driver, while the upper edge of top level class drivers is operating system specific. Class drivers can be dynamically loaded and unloaded at will. They can do class specific functions that are not hardware or bus-specific (with the exception of bus-type class drivers) and in fact sometimes only do class specific functions like enumeration.
* Miniport drivers: These are also "function drivers" for USB, Audio, SCSI and network adapters. They should usually be source and binary compatible between Windows 98 and Windows 2000 and are hardware specific but control access to the hardware through a specific bus class driver.

Bus drivers

A bus driver services a bus controller, adapter, or bridge. Microsoft provides bus drivers for most common buses, such as PCI, PnPISA, SCSI, USB and FireWire. Each software vendor can create their own bus drivers if needed. A bus driver can service more than one bus if there is more than one bus of the same type on the machine.

Filter drivers

Filter drivers are optional drivers that add value to or modify the behavior of a device and may be non-device drivers. A filter driver can also service one or more devices. Upper level filter drivers sit above the primary driver for the device (the function driver), while lower level filter drivers sit below the function driver and above the bus driver.
* Driver service: This is a type of kernel-level filter driver implemented as a Windows service that enables applications to work with devices.

VxD, WDM and Windows 98

Windows 98 based operating systems (Windows 98, Windows 98 Second Edition, and Windows Me) are able to use both WDM and VxD (Virtual device driver) driver standards. Both drivers models can provide unique and different features for the same hardware. However, usually the newer WDM standard provides more features. For example, if a TV tuner card using a VxD driver is able to capture images at a resolution of 384 x 288 pixels, the same TV Tuner card with the WDM driver model may be able to capture at a resolution of 768 x 576 pixels. This can be attributed to the new Broadcast Driver Architecture model which is part of WDM.

Criticism

The Windows Driver Model, while a significant improvement over the VxD and Windows NT driver model used before it, has been criticised by driver software developers [http://www.wd-3.com/archive/FrameworkIntro.htm] , most significantly for the following:

* WDM has a very steep learning curve.
* Interactions with power management events and Plug-and-play are difficult. This leads to a variety of situations where Windows machines cannot go to sleep or wake up correctly due to bugs in driver code.
* I/O cancellation is almost impossible to get right.
* Thousands of lines of support code are required for every driver.
* No support for writing pure user-mode drivers.

There were also a number of concerns about the quality of documentation and samples that Microsoft provided.

Because of these issues, Microsoft has released a new framework to replace WDM, called the Windows Driver Foundation, which includes Kernel-Mode Driver Framework (KMDF) and User-Mode Driver Framework (UMDF). Windows Vista supports both WDM and the newer Windows Driver Foundation. KMDF is also available for download for Windows XP and even Windows 2000, while UMDF is available for Windows XP.

ee also

*Windows Driver Foundation
*Kernel-Mode Driver Framework
*User-Mode Driver Framework
**Windows Display Driver Model

References

* Finnel, Lynn (2000). "MCSE Exam 70-215, Microsoft Windows 2000 Server". Microsoft Press. ISBN 1-57231-903-8.

* Oney, Walter (2003). "Programming the Windows Driver Model", Microsoft Press, ISBN 0-7356-1803-8.

External links

* [http://www.staudio.de/kb/english/drivers/ Windows driver API basics] - This article informs you about the basics behind soundcard drivers such as WDM, ASIO, MME, DirectX, etc.
* [http://channel9.msdn.com/Showpost.aspx?postid=156316 Channel 9 Video] - Interview with the Device Management and Installation team at Microsoft, primarily covering Plug-and-play.


Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Look at other dictionaries:

  • Windows Driver Model — ou WDM est le nom général des pilotes pour les systèmes d’exploitation Windows 98 et Windows 2000 de Microsoft[1]. WDM a remplacée VxD introduit sous Windows 3.x[2] …   Wikipédia en Français

  • Windows Driver Model — (WDM) es una estrategia de Microsoft para facilitar un desarrollo simple de drivers para dispositivos compatibles Microsoft Windows 98, Windows 2000, Windows Millennium y Windows XP. WDM utiliza una aproximación basada en niveles, en los que las… …   Wikipedia Español

  • Windows Driver Model — Windows Driver Model,   WDM …   Universal-Lexikon

  • Windows Driver Model — (WDM) – фреймворк для драйверов устройств (также известен как Win32 Driver Model и Windows NT Driver Model), был введен в Windows 98 и Windows 2000 для замены устаревшего VxD, кото …   Википедия

  • Windows Driver Model — Ein Gerätetreiber, häufig kurz nur Treiber genannt, ist ein Computerprogramm oder modul, das die Interaktion mit angeschlossenen oder eingebauten Geräten (Hardware) steuert. Dazu nutzt es Schnittstellen zum Kommunikationsbus oder anderen… …   Deutsch Wikipedia

  • Windows Driver Model — noun The Windows Driver Model (WDM) is a framework for device drivers for the Microsoft Windows operating system …   Wiktionary

  • Windows Driver Foundation — Разработчик Microsoft Операционная система Windows Языки интерфейса Английский Последняя версия 1.9 Состояние Active Windows Driver Foundation (WDF)  набор программных инструментов от корп …   Википедия

  • Windows Display Driver Model — Эта статья содержит незавершённый перевод с иностранного языка. Вы можете помочь проекту, переведя её до конца. Если вы знаете, на каком языке написан фрагмент, укажите его в этом шаблоне. Windows Display Driver …   Википедия

  • Windows Driver Foundation — Infobox Software name = Windows Driver Foundation caption = author = developer = Microsoft released = latest release version = 1.7 latest release date = latest preview version = latest preview date = operating system = Windows platform = language …   Wikipedia

  • Windows Driver Kit — Infobox Software name = Windows Driver Kit caption = author = developer = Microsoft released = latest release version = 6001.18001 latest release date = latest preview version = latest preview date = operating system = Windows platform = language …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”