Programming the Microsoft® Windows® Driver Model and over one million other books are available for Amazon Kindle. Learn more

Kindle Edition
 
   
Sell Back Your Copy
For a $10.61 Gift Card
Trade in
Have one to sell? Sell yours here
Programming the Microsoft Windows Driver Model
 
 
Start reading Programming the Microsoft® Windows® Driver Model on your Kindle in under a minute.

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

Programming the Microsoft Windows Driver Model [Paperback]

Walter Oney (Author)
3.9 out of 5 stars  See all reviews (14 customer reviews)


Available from these sellers.


Textbook Student FREE Two-Day Shipping for students on millions of items. Learn more

Formats

Amazon Price New from Used from
Kindle Edition $30.23  
Paperback --  
Paperback, December 23, 2002 --  
Sell Back Your Copy for $10.61
Whether you buy it used on Amazon for $48.00 or somewhere else, you can sell it back through our Book Trade-In Program at the current price of $10.61.
Used Price$48.00
Trade-in Price$10.61
Price after
Trade-in
$37.39

Book Description

December 23, 2002 0735618038 978-0735618039 2nd

The Microsoft® Windows® driver model (WDM) supports Plug and Play, provides power management capabilities, and expands on the driver/minidriver approach. Written by long-time device-driver expert Walter Oney in cooperation with the Windows kernel team, this book provides extensive practical examples, illustrations, advice, and line-by-line analysis of code samples to clarify real-world driver-programming issues. And it’s been updated with the latest details about the driver technologies in Windows XP and Windows 2000, plus more information about how to debug drivers.

Topics covered include:

  • Beginning a driver project and the structure of a WDM driver; NEW: Minidrivers and class drivers, driver taxonomy, the WDM development environment and tools, management checklist, driver selection and loading, approved API calls, and driver stacks
  • Basic programming techniques; NEW: Safe string functions, memory limits, the Driver Verifier scheme and tags, the kernel handle flag, and the Windows 98 floating-point problem
  • Synchronization; NEW: Details about the interrupt request level (IRQL) scheme, along with Windows 98 and Windows Me compatibility
  • The I/O request packet (IRP) and I/O control operations; NEW: How to send control operations to other drivers, custom queue implementations, and how to handle and safely cancel IRPs
  • Plug and Play for function drivers; NEW: Controller and multifunction devices, monitoring device removal in user mode, Human Interface Devices (HID), including joysticks and other game controllers, minidrivers for non-HID devices, and feature reports
  • Reading and writing data, power management, and Windows Management Instrumentation (WMI) NEW: System wakeup, the WMI control for idle detection, and using WMIMOFCK
  • Specialized topics and distributing drivers; NEW: USB 2.0, selective suspend, Windows Hardware Quality Lab (WHQL) certification, driver selection and loading, officially approved API calls, and driver stacks

COVERS WINDOWS 98, WINDOWS ME, WINDOWS 2000, AND WINDOWS XP!

CD-ROM FEATURES:

  • A fully searchable electronic copy of the book
  • Sample code in Microsoft Visual C++®

A Note Regarding the CD or DVD

The print version of this book ships with a CD or DVD. For those customers purchasing one of the digital formats in which this book is available, we are pleased to offer the CD/DVD content as a free download via O'Reilly Media's Digital Distribution services. To download this content, please visit O'Reilly's web site, search for the title of this book to find its catalog page, and click on the link below the cover image (Examples, Companion Content, or Practice Files). Note that while we provide as much of the media content as we are able via free download, we are sometimes limited by licensing restrictions. Please direct any questions or concerns to booktech@oreilly.com.


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.


Product Details

  • Paperback: 880 pages
  • Publisher: Microsoft Press; 2nd edition (December 23, 2002)
  • Language: English
  • ISBN-10: 0735618038
  • ISBN-13: 978-0735618039
  • Product Dimensions: 8.9 x 7.4 x 1.6 inches
  • Shipping Weight: 2.8 pounds
  • Average Customer Review: 3.9 out of 5 stars  See all reviews (14 customer reviews)
  • Amazon Best Sellers Rank: #751,537 in Books (See Top 100 in Books)

More About the Author

Discover books, learn about writers, read author blogs, and more.

 

Customer Reviews

14 Reviews
5 star:
 (8)
4 star:
 (1)
3 star:
 (2)
2 star:
 (2)
1 star:
 (1)
 
 
 
 
 
Average Customer Review
3.9 out of 5 stars (14 customer reviews)
 
 
 
 
Share your thoughts with other customers:
Most Helpful Customer Reviews

68 of 75 people found the following review helpful:
1.0 out of 5 stars WDM Newbies Warning: Use this book at your own risk!, June 14, 2002
By 
BugBuster "BugBuster" (Eugene, OR United States) - See all my reviews
Amazon Verified Purchase(What's this?)
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.

Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


61 of 67 people found the following review helpful:
3.0 out of 5 stars Not for beginners, March 22, 2000
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.

Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


18 of 18 people found the following review helpful:
5.0 out of 5 stars If you're serious about WDM, you need this book!, September 16, 2000
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. In addition to including the code on the CD, he gives a detailed and highly instructive discussion in the text. DEVQUEUE is a useful tool that can be taken over as-is in your own projects.

Once you've finished this book, you'll be writing much more solid code and have enough technique to pick and choose among methods of your choice, rather than feeling cornered and boxed-in. Oney maintains a web site with errata and updates for the book and code samples (for instance, the stub VDD is now replaced by a filter driver to avoid the need to reboot).

Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No

Share your thoughts with other customers: Create your own review
 
 
 
Most Recent Customer Reviews











Only search this product's reviews



Inside This Book (learn more)
First Sentence:
In this chapter, I'll present an overview of the driver writing process. Read the first page
Key Phrases - Statistically Improbable Phrases (SIPs): (learn more)
device power state, cancel routine, cancel spin lock, minor function codes, remove device request, topmost driver, same file object, own device object, new device object, queued spin lock, report descriptor, dispatch routine, cancel pointer, first stack location, physical device object, arbitrary thread context, lookaside list, major function code, memory descriptor list, maximum transfer size, interrupt endpoint, function device object, kernel mutex, completion routine, polling thread
Key Phrases - Capitalized Phrases (CAPs): (learn more)
Device Manager, Power Manager, Microsoft Windows, Event Viewer, Normal Succeed, Windows Driver Model, Configuration Manager, Cypress Semiconductor, Peripheral Component Interconnect, Windows Management Instrumentation, Code Co-installer, Summary of Operation, Hardware Compatibility Tests, Microsoft Press, Windows Hardware Quality Lab, Windows Update, Knowledge Base, Microsoft Foundation Classes, Name My Device Object, Normal Special, Personal Computer Memory Card International Association, Walter Oney Software, American English, Minor Function Code Description, Num Lock
New!
Books on Related Topics | Concordance | Text Stats
Browse Sample Pages:
Front Cover | Table of Contents | First Pages | Index | Back Cover | Surprise Me!
Search Inside This Book:




Tags Customers Associate with This Product

 (What's this?)
Click on a tag to find related items, discussions, and people.
 

Your tags: Add your first tag
 

Customer Discussions

This product's forum
Discussion Replies Latest Post
No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
Topic:
First post:
Prompts for sign-in
 


Active discussions in related forums
Search Customer Discussions
Search all Amazon discussions
   
Related forums


Listmania!


Create a Listmania! list

So You'd Like to...


Create a guide


Look for Similar Items by Category


Look for Similar Items by Subject