WDM and WDee-eMmer
The Whys and the Wherefores of the New Windows Driver Standard
by JD Mars



 

Just as Windows 2000 builds upon the NT kernel, or core, Microsoft's "Windows Driver Model," or WDM, draws from the NT driver model with several fundamental differences. WDM is an attempt to bridge the gap between Windows 98 and Windows 2000 driver development, with performance benefits even for users of Win98.

With the creation of this new driver standard, manufacturers are faced with support of the previous, virtual device driver model, or "VXD," for Win95/98, plus NT support, plus the development of the WDM driver which, by definition, must work in both Windows 98 and 2000. Initially, at least, that's a double-edged sword for manufacturers. One edge is the awesome task of creating a new set of drivers for a complete line of devices, and the other edge is the legacy support with inevitable obsolescence. The latter edge is perhaps not quite so sharp, and therefore ultimately more painful.

For the user and eventually for the hardware manufacturer, these are positive strides. Let's take a closer look at what this all means to the end-user.

Why WDM?
Microsoft recognized the difficulty for independent hardware vendors to develop and maintain two completely different driver standards, i.e., one for Windows 95/98 and one for Windows NT 3.51 and 4.0. With NT 5 (better known as Windows 2000) on the horizon, the WDM driver standard was introduced for Windows 98 to bridge the gap between the need to develop two separate sets of drivers and to encourage driver development for Windows 2000 (WDM will not work in Win 95, though it does contain some of the necessary elements). At the time, yet possibly less so today, legacy support for Windows 95 was a necessary evil.

The other side of the coin was Microsoft's reluctant yet eventual acknowledgment of the increasing use of the personal computer for applications where large amounts of continuous data needed to be streamed to hardware, and where the time-sensitive nature of that data required precise synchronization. Previously, Microsoft seemed to address only the more traditional business applications in a serious and efficacious way. Perhaps the cry, "Hey, what about us audio and video guys?" was finally heard. While streaming and synchronization were negatively impacted by the inefficient use of system resources and system latency coupled with an inconsistent driver model, WDM represents major advances in this area.

How WDM?
With WDM, some of the work of a device driver is offloaded onto portions of the code that are integrated into the operating system. These portions of the driver code are known as driver "classes," or the class driver. The class driver handles all of the low-level buffer management, including DMA and even Plug and Play device enumeration. The result is that the actual WDM device driver is far more streamlined with far less code, and with much greater efficiency.

Class drivers themselves are divided into two categories, and with this simplification of the driver model, the class drivers are referred to as "miniport" and "minidriver" (not to be confused with the actress, Minnie Driver) approaches to driver operation. The port class/miniport model serves devices designed for the PCI and ISA bus, while the stream class/minidriver model addresses the needs of USB and FireWire ports. The class driver communicates with the OS through WDM, and with the rest of the world through WDM CSA.

WDM is based on the layered approach of the Windows NT driver. Built on top of WDM, is the Connection Streaming Architecture (WDM CSA), and is designed to address the higher level functions including data streaming and synchronization and delivery delays, a/k/a system latency. CSA is modular in nature, something that previous driver models lacked. This, together with the manner in which WDM CSA presents drivers as "filters" which pass streaming media (isolating the hardware issues from the streaming issues), allowed driver writers to manipulate driver behavior without having to rewrite the driver or the application.


NEXT







top      home      search      user forum      subscribe      media kit      contact      webmaster@digitalmedianet.com