Talk:Windows Driver Model
From Wikipedia, the free encyclopedia
Can someone explain the difference between Windows 95 drivers and and WDM drivers ?
- Yes. They usually charge a fee for doing so, too. 81.138.100.115 18:56, 6 Jan 2005 (UTC)
-
- Thanks. - Omegatron
In researching windows audio, I have found a few sites that claim WDM to be an audio driver, like MME or ASIO. Then I found another one that says WDM is just a "wrapper" for all the other types. This article leads me to believe the latter is true. Is it? - Omegatron 17:10, Jan 6, 2005 (UTC)
- Both claims are false. 81.138.100.115 18:56, 6 Jan 2005 (UTC)
-
- Very informative. - Omegatron 03:57, Jan 8, 2005 (UTC)
OK, someone was giving Omegatron the run-around. WDM is basically an intermediary level driver model that was introduced to increase the functionality and ease of writing drivers for Windows. The WDM does not work in Windows 95 because WDM was designed to be binary compatible between Windows 98 and Windows 2000 (mainly, I think, to make it easier for equipment manufacturers to migrate from 98 to 2000). WDM consists of a few things:
- Class drivers: these can be thought of as built-in framework drivers (for lack of a better word) that miniport and other class drivers can be built on top of. According to my MCSE book (yes, I have one of these), the class drivers provide an 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 (implying, I suppose, that class drivers can be layered) 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 USB, Audio, SCSI and network adapters. They (according to Microsoft at any rate) should be source and binary compatible between Windows 98 and Windows 2000 (and I would assume Windows XP and Windows Server 2003). They are hardware specific but control access to the hardware through a specific bus class driver.
- OS Services: this layer is all the operating system stuff that has been abstracted away from the miniport driver.
- Virtualisation drivers: have been part of Windows since v3.0. These are basically for legacy drivers - not really used anymore.
Anyway, HTH. - Ta bu shi da yu 08:16, 3 May 2005 (UTC)
- P.S. the diagram is one I whipped up myself, but the info is from:
- Finnel, Lynn (2000). MCSE Exam 70-215, Microsoft Windows 2000 Server. Chapter 1, Introduction to Microsoft Windows 2000, pg 13-18. Microsoft Press. ISBN 1-57231-903-8.
- Forgot to note this. - Ta bu shi da yu 08:24, 3 May 2005 (UTC)
Hmm... I've always thought WDM was actually introduced in ME and 2k, since those two were developed together... --Arny 15:09, 5 April 2006 (UTC)
[edit] Excellent overview
Can be found here. - Ta bu shi da yu 11:08, 28 January 2006 (UTC)
[edit] Documentation
It is interesting that the Wikipedia description of what is called a "model" for the arcane world of driver programming contains this comment: "There were also a number of concerns about the quality of documentation and samples that Microsoft provided." A model is something that is invented to abstract away complexity in a problem domain or, failing that, to present a way of organizing an approach that shall be used or is recommended to complete a task. Obviously, the Windows Driver Model was a failure in this regard. "Quality of documentation and samples" is an issue of concern well outside this one corner of the product gamut. If you design and manufacture peripheral devices for Wintel machines, getting drivers delivered is a serious, time-constrained and financial burden. The documentation and samples issue therefore gains visibility. On the other hand, programmers of business applications grin and bear it or phone up Microsoft for paid assistance. Few academic computer scientists spend time on the issue of documentation. Of late, documentation has a reputation for being unnecessary, perpetually out of date, and expensive to produce. Oh, and by the way, nobody reads it. The problem, I think, is manifold, but when I think of the documentation I want, it isn't at the microscopic level that I assume most people conceive it to be. Rather, I'd settle for overviews and tours of the terrain. For example, each of the major classes should be documented as to the behaviors they exhibit, the data members they expose, and the other classes they interact with. The typical boilerplate documentation contains, perhaps, a one sentence restating of the name of the class. The DataGridView class, for example, might have the following remarks: "The DataGridView class implements a view of a grid of data." Full stop. Upper management asks the vendor "Do you have documentation?" The answer, of course, is "Yes." End of discussion. Pity. 70.108.175.203 03:01, 10 August 2006 (UTC)