Aimed at the more experienced Windows C/C++ programmer, Writing Windows WDM Device Drivers provides an up-to-the-minute guide to writing drivers that conform to the new Windows 2000 driver standard. This well-paced and informative guide offers numerous excellent tips, including how to design device drivers that fit your needs, and a good deal of material on how to test and debug driver code.
Two standout sections help make this title successful. First the author describes the WDM model in detail and explains that it isn't always necessary to write your own custom device driver. (Author Chris Cant discusses when to consider off-the-shelf drivers or when to script standard drivers from Microsoft, instead of writing your own. If you do decide to go for a custom driver, Cant's simple generic drivers will help get you started.)
The second strength of this book is its discussion of a variety of techniques for testing and debugging device drivers (traditionally, a tough nut to crack since device drivers work so close to hardware). The book provides a debug driver (which allows you to log messages from other drivers), plus a number of useful tips on installing, testing, and debugging drivers, including logging events with Windows.
Fast-paced and informative, this book is a thorough guide to virtually every aspect of today's WDM device drivers, including APIs like Plug and Play, ACPI for power management, and working with USB devices. Programming device drivers is still tough, but Writing Windows WDM Device Drivers delivers all that you need to design, code, and test custom device drivers successfully. --Richard Dragan
Topics covered : Windows Driver Model (WDM) basics, device driver components, off-the-shelf drivers, standard drivers, designing device drivers, kernel calls, I/O Request Packet (IRP) processing, WDM driver development tools and utilities, testing and debugging techniques, installation, dispatch routines, plug-and-play support, power management and Advanced Configuration and Power Interface (ACPI), Windows Management Instrumentation (WMI), event logging, sample generic drivers, interrupt handling, Windows NT hardware, system drivers, USB and USB Driver Interface (USBDI), and the Human Input Device (HID) model.