- Series: Developer Reference
- Paperback: 880 pages
- Publisher: Microsoft Press; 2nd edition (December 26, 2002)
- Language: English
- ISBN-10: 0735618038
- ISBN-13: 978-0735618039
- Product Dimensions: 7.4 x 1.6 x 9 inches
- Shipping Weight: 2.8 pounds
- Average Customer Review: 14 customer reviews
- Amazon Best Sellers Rank: #1,055,652 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Programming the Microsoft Windows Driver Model (2nd Edition) (Developer Reference) 2nd Edition
Use the Amazon App to scan ISBNs and compare prices.
"Warlight" by Michael Ondaatje
A dramatic coming-of-age story set in the decade after World War II, "Warlight" is the mesmerizing new novel from the best-selling author of "The English Patient." Pre-order today
Customers who bought this item also bought
Customers who viewed this item also viewed
What other items do customers buy after viewing this item?
Written for advanced C/C++ programmers, Walter Oney's Programming the Microsoft Windows Driver Model is a technically astute and clearly presented guide to writing custom Windows 2000 device drivers.
The author's command of the details of the new Windows Driver Model (WDM) standard is what makes this book such a clear success. (Because the WDM is rich in kernel and system services, the trick is often knowing how to use what's available rather than doing everything yourself.) The author presents a solid overview of the WDM architecture and breaks down the process of writing custom device drivers into manageable pieces, from the basics of loading device drivers to creating and processing I/O request packets. The book is very good at exposing kernel system calls, design principles, and programming techniques (such as managing synchronization and handling errors). There are also "nerd alerts" that point out extremely technical material.
This book shows you what you'll need to create WDM drivers that cooperate fully with Windows 2000 (and Windows 98). Features like Plug and Play (PnP), Windows power management, and the new Windows Management Instrumentation (WDM) standard get full attention here. There is plenty of sample code (plus a custom Visual C++ AppWizard that generates skeleton code for a default WDM driver) to get you started. Examples for working with the S5933 PCI chip set (and other simple hardware) let you see WDM drivers in action.
The process of writing device drivers certainly has changed from the early days of DOS. But armed with this handy and thorough book, C/C++ programmers can successfully create drivers for custom hardware that take full advantage of all the features of the powerful new WDM standard. --Richard Dragan
Topics covered: Windows Driver Model (WDM) overview and driver structure; kernel mode; physical filter, function and bus drivers; loading device drivers (DDs); driver objects; Windows 98 compatibility; kernel mode programming basics; error handling; memory management; synchronization; interrupt request levels, kernel synchronization objects, I/O request packets (IRPs), completion routines, plug and play (PnP) basics, reading and writing data, direct memory access (DMA) transfers, power management, error logging, watchdog timers, Windows Management Instrumentation (WMI), Universal Serial Bus (USB): bulk transfer and isochronous pipes; installing DDs: INF files, property pages, and Registry keys. --This text refers to an out of print or unavailable edition of this title.
About the Author
Walter Oney has 35 years of experience in systems-level programming and has been teaching Windows device driver classes for 10 years. He was a contributing editor to Microsoft Systems Journal and is a Microsoft MVP. He has written several books, including Systems Programming for Windows 95 and the first edition of Programming the Microsoft Windows Driver Model. In his free time he's a committed jogger, a fan of classical dance, and an amateur oboist. He and his wife, Marty, live in Boston, Massachusetts.
Top customer reviews
There was a problem filtering reviews right now. Please try again later.
There are a number of other references for this territory, such as MSDN, the Windows Internals books, and the DDK itself, but what I especially like about Oney's book is the deliberate way he sets out the material, at many junctures anticipating the extra things you need to know for each piece to make sense, often dispelling some doubt or ambiguity that otherwise makes understanding difficult.
To be sure, a developer will also want to be familiar with more recent developments that make driver development easier, notably the Windows Driver Framework (fromerly "Foundation") (WDF, KMDF, UMDF). So developers may well not build drivers from scratch as in this book. But drivers built with WDF still must operate within the WDM, so knowing how WDM works is an essential foundation.
As for the several less-glowing reviews, note that almost all are from before the second edition was released, so don't actually apply to this edition. This is a sizable tome, with a lot of technical detail, so it's not a surprise that a couple of iterations made for a better result.
At this point in time, you may be tempted to purchase a used copy. That's a good investment, but be aware that the accompanying CD, which contains useful tools and sample code, may be missing, and I've not been able to locate an online source for them. The author's original programming site is no longer online.
Update: Apparently some aspects of this book were acquired by oreilly, and the supporting material can be located by searching for that name in conjunction with 9780735618039. For what it's worth, the revealing DevView.exe tool does work on XP. However, I found that it is unable to load its crucial DevView.sys driver on Win 7-64, not even with boot-time F8 -- Disable Driver Signature Enforcement, hence not usable on that OS (though it might work on Win7-32). Obviously in some cases one can learn what one needs to know on XP, so still useful.
Further update: OSR Online publishes a free utility called DeviceTree, which covers much of the same territory as Oney's DevView, making it a good companion for this book.
This book was perfect for someone like me; 90% of the chapters were relevant for me and at the end of it I was able to fully understand the IRP model, be able to intelligently discuss the issues at hand, and even fix a couple of small things here and there! Very comprehensive and has excellent tips that even the expert SME was surprised to hear. On another occassion I had to deal with a pesky WMI issue; thanks to this book we quickly identified and resolved the issue!
Only complaint is that is fairly old so some topics aren't longer relevant.
would have to be an experienced driver developer to understand.
Only chapters 1-3 are aimed at beginners.
The problem is the author jumps right into the hardest part
Also, the author shows the wrong way of doing things first. That
makes this an extremely difficult read.
Some of the topics could have been simplified.
There is good examples, and software with the book. Otherwise, I would
have given it one star.
If you do not know how to write WDM device drivers, you would do yourself
a big favor by avoiding this book. It is so carelessly edited and
organized that I would feel justified in billing Walter Oney and his
publishers back for the time I have wasted dealing with things like this:
From page 184: ..."In fact, sometimes the easiest way to commence a new operation is to store
some state information in your device extension and then fake an
interrupt. Since either of these approaches needs to be carried out under
protection of the same spin lock that protects your ISR..."
"Fake and interrupt?" This term is not defined or explained anywhere in the book that I could
find within an hour's search.
"...the same spin lock that protects your ISR," is explained 121 pages later on page 305,
where it says "...(because the I/O Manager automatically allocates [a spin
lock] for you.)"
There are 26 pages of errata downloadable from Oney's web site. I printed
out the file, and I have to check it every page or two to make sure the
information on the page I am reading is correct.
If you want to spend your time sorting through this mess
while introducing yourself to a topic as arcane as WDM, be my guest.
You have been warned.
Most recent customer reviews
But it can get quite rambly, the IO...Read more
For newbie's, the book is a great companion to the DDK.Read more
The writing style is almost unbearably boring.Read more