Talk:Windows Driver Model

Windows 95 drivers
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)

The USB drivers in Windows 95 OSR2 use WDM. Why isn't WDM considered to be introduced with Windows 95 OSR2? 68.0.59.20 (talk) 03:31, 29 April 2022 (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: Anyway, HTH. - Ta bu shi da yu 08:16, 3 May 2005 (UTC)
 * 1) 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).
 * 2) 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.
 * 3) OS Services: this layer is all the operating system stuff that has been abstracted away from the miniport driver.
 * 4) Virtualisation drivers: have been part of Windows since v3.0. These are basically for legacy drivers - not really used anymore.
 * 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)

Excellent overview
Can be found here. - Ta bu shi da yu 11:08, 28 January 2006 (UTC)
 * Broken link --ThG 12:33, 28 May 2007 (UTC)
 * Can be found here, now. Muad 18:36, 1 June 2007 (UTC)

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)

Disagree with criticism
In the article: "No support for writing pure user-mode drivers."

I think this is no longer true. In Windows XP i'm developing a pure usermode printer driver, using WDM. Also, Microsoft discourages the use of Kernel mode drivers since Windows XP. Can someone clear the point about this? --ThG 12:32, 28 May 2007 (UTC)

HTML comment in source
Why is there an HTML-style comment hidden into the page's source (in the opening paragraph of the Overview section)? It says, "for those who care, this makes Windows backward compatible, but the driver itself is being forward compatible." 128.244.208.71 (talk) 18:04, 30 April 2008 (UTC)

Intervideo WinDVR audio
When recording slots from TV in parts (not being fully conversant in using timeshifting yet), Audio does not record in some of these. Why is this please?

Criticism: Shallow Learning Curve
Unless detractors are explicitly calling it for being limited and novice-oriented (which driver models are *not*), I don't see how having a shallow learning curve is a criticism, if anything it is something to be desired. A steep learning curve is usually what is listed as a criticism, if this is what the writer intended, then it should be changed to reflect this. Anthiety (talk) 02:38, 16 August 2010 (UTC)

Dubious
"almost impossible" that's the reality when Microsoft say "Cancellation logic is difficult to get right." https://msdn.microsoft.com/en-us/library/windows/hardware/dn613954(v=vs.85).aspx 87.102.44.18 (talk) 14:18, 5 August 2016 (UTC)