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.
Book Description
Microsofts new driver model for Windows 98 and Windows 2000 supports Plug and Play, provides power management capabilities, and expands on the driver/minidriver approach. Written by device-driver expert Walter Oney in cooperation with the Windows DDK team, this book provides extensive practical examples, illustrations, advice, and line-by-line analysis of code samples to clarify real-world driver-programming issues. Topics covered include: An introduction to the Windows Driver Model architecture Programming techniques, including error handling, memory and data-structure management, and registry and file access Synchronization and driver development in a multitasking, multiprocessor environment Creating and processing I/O request packets Taking advantage of Windows 98 and Windows 2000 Plug and Play support Techniques for reading from and writing to devices Installation and power management Creating filter drivers, controlling hardware, and logging errors Windows Management Instrumentation (WMI) Developing device drivers for the new universal serial bus (USB) architecture Installing WDM drivers Understanding Windows 98 compatibilityAn electronic version of this book is available on the companion CD.
Programming the Microsoft Windows Driver Model with CDROM FROM THE PUBLISHER
This example-packed book details the Microsoft Win32 Driver Model (WDM) with practical advice and authoritative insights-from the source. A device driver is the code interface that enables a CPU to communicate to peripherals such as keyboards, mice, scanners, monitors, printers, and speakers. WDM provides a common set of input/output (I/O) services and binary-compatible device drivers for both current and future generations of the Windows operating system. By providing standardized driver classes and mini- drivers, WDM can help create tremendous efficiencies in device development and support. Developed in cooperation with the WDM team at Microsoft, PROGRAMMING THE MICROSOFT WIN32 DRIVER MODEL provides the definitive WDM coverage professional developers and VARs need to fully exploit this technology. NOTE: The Windows 2000 content in the book is being written to Microsoft Windows 2000 Beta 3.
END:
AUTHOR DESCRIPTION
Walt Oney has 30 years' experience in systems-level programming and has been teaching Windows device driver classes for eight years. He is a contributing editor to Microsoft Systems Journal and a Microsoft MVP, based in Boston, Massachusetts.