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.

  • Apple
  • Android
  • Windows Phone
  • Android

To get the free app, enter your mobile phone number.

Programming the Microsoft Windows Driver Model (2nd Edition) (Developer Reference) 2nd Edition

4.0 out of 5 stars 16 customer reviews
ISBN-13: 079-0145180384
ISBN-10: 0735618038
Why is ISBN important?
This bar-code number lets you verify that you're getting exactly the right version or edition of a book. The 13-digit and 10-digit formats both work.
Scan an ISBN with your phone
Use the Amazon App to scan ISBNs and compare prices.
Trade in your item
Get a $2.00
Gift Card.
Have one to sell? Sell on Amazon
Buy used
Condition: Used: Acceptable
Access codes and supplements are not guaranteed with used items.
24 Used from $21.99
More Buying Choices
9 New from $49.00 24 Used from $21.99
Free Two-Day Shipping for College Students with Prime Student Free%20Two-Day%20Shipping%20for%20College%20Students%20with%20Amazon%20Student

Windows 10 For Dummies Video Training
Get up to speed with Windows 10 with this video training course from For Dummies. Learn more.
click to open popover

Editorial Reviews

Amazon.com Review

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.


The latest book club pick from Oprah
"The Underground Railroad" by Colson Whitehead is a magnificent novel chronicling a young slave's adventures as she makes a desperate bid for freedom in the antebellum South. See more

Product Details

  • 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.5 x 9 inches
  • Shipping Weight: 2.8 pounds
  • Average Customer Review: 4.0 out of 5 stars  See all reviews (16 customer reviews)
  • Amazon Best Sellers Rank: #1,131,796 in Books (See Top 100 in Books)

Customer Reviews

Top Customer Reviews

Format: Paperback
Having read this book half way, I believe it is intended for experienced developers instead of for beginners in device programming. Rather than offering a structural and formal introduction to the subject, it stresses on tricks and hints on selected topics like synchronization, pnp, read/write, etc.
I now go for the DDK documentation for a more fundamental treatment. It cleared up instantly some of the questions built up as I read through the first five chapters of the book, like how a user mode application calls up the kernal mode driver. Nevertheless the author does give an authoritative insight in WDM programming. Incidentally, it is a matter of taste whether you like his informal writing style.
As a beginner at the moment, I rated this book three stars. I might rate it differently when I returned to the book later.
Comment 62 people found this helpful. Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
Format: Paperback Verified Purchase
If you already know how to write WDM device drivers, you may or may not need this book.
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.
1 Comment 76 people found this helpful. Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
Format: Paperback
Walter Oney is an expert who doesn't talk down to you. There's a lot of gold in this well-written book, but to extract it happily you'll need a strong background in Windows programming, including first and foremost a couple of years of professional driver-writing experience for Win9X/NT platforms; in a few places, some knowledge of COM and MFC will also be helpful. Plug and Play, power management, and USB issues are covered in detail, as well as driver basics (from an advanced perspective), the intricacies of cancelling IRPs, etc.
I like Oney's approach to teaching -- he concentrates on the logic of the few dozen basic steps needed to write a driver, leaving it to the samples on the accompanying CD to flesh out the skeleton. This has the advantage of highlighting the mechanics, and the often convoluted reasoning behind them, without sacrificing completeness. He identifies and analyzes many potential race conditions and other pitfalls that you might not think of on your own.
One of the best things about the book is the tips and sidebars. Some examples: why you should use the PAGED_CODE macro and Driver Verifier when using Soft-Ice/W on Win2k; the hazards of using DDK "function calls" that are actually macros; how to ship a single binary for both Win2000 and Win98, given that Win98 doesn't support some key functions (such as those involving IO_REMOVE_LOCK) -- the book suggests writing a VDD with stubs for the missing functions, as explained in Appendix A. The sample code also contains very instructive workarounds for the shortcomings of Win98. Another strong point is the DEVQUEUE code that Oney has developed to extend the standard Windows driver model to handle PlugandPlay.
Read more ›
Comment 20 people found this helpful. Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
Format: Paperback
This book was a valuable resource for my successful driver development project.
For newbie's, the book is a great companion to the DDK. The text provides simple and concise sample code. The examples on the CD-ROM are a great way to start exploring driver programming concepts using a kernel debugger. The DDK samples are far too complicated for understanding the fundamentals, so use the book to get started and then the DDK samples will be much easier to comprehend.
I recommend that you read through the entire book at a high enough level that you don't get caught up in the details. Next, find the chapter and sample driver that is most appropriate for your task and get started. Throughout the rest of development, you'll reference various parts of the book to understand the details and avoid the hidden pitfalls in kernel mode programming.
For experts, the book provides comprehensive treatment of the topic. It's full of tips and suggestions based on real-world experience. Many of the driver components on the CD-ROM can be integrated into real drivers in order to reduce development time and complexity. If you are creating a production driver that you intend to ship to real customers, the book will also provide you many options for creating a top-notch user experience during the install process. WHQL and driver security issues are addressed as well.
The author updates the CD-ROM sources in service packs located on the web site. These updates are based on his continuing work and feedback from readers.
Comment 20 people found this helpful. Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse

Most Recent Customer Reviews

Pages with Related Products. See and discover other items: power query