Amazon.com Review
Developing Windows NT Device Drivers is an authoritative and clearly written resource on how to write device drivers for Windows NT. The book begins with an excellent high-level overview of how Windows NT device drivers work and how to create them. The text concentrates on "generic" device drivers written in C and excludes specialized drivers for graphics, file system, and network hardware.
Eventually, the book turns to device registers, device memory, and different PC busses (such as PCI). A section on I/O Request Packets (IRPs) and interrupt handling within Windows NT shows how to do asynchronous I/O. The authors offer a simple "Hello World" example for a device driver and present various debugging techniques.
Subsequent chapters deepen the reader's knowledge on topics such as device I/O, synchronization (including spin locks), device-driver initialization and cleanup, and direct memory access (DMA). These chapters also instruct you on how to access hardware ports and interrupt processing (a crucial topic) and how to move device memory into system memory (along with a working example). Discussion of more specialized topics--ISA and PCI busses, serialization, driver threads, and the advantages of the new "layered" driver model--follows.
Authors Edward Dekker and Joseph M. Newcomer offer plenty of excellent real-world advice. (Material on how to log device-driver events and manage the infamous Windows "Blue Screen of Death" is indispensable.) They present a "hardware simulator" that lets readers develop device drivers without an actual hardware device. The book closes with information on Windows 2000, universal serial bus (USB) devices, the Win32 driver model, and over 300 pages of reference material, including device-driver kernel functions. Overall, this comprehensive text provides a solid introduction to the way Windows NT device drivers interact with hardware; it gives you all you need to start building custom device drivers. --Richard Dragan
Review
"A gentle introduction... an attempt to encapsulate everything and will be fairly high in the pile of documentation on your workbench" -- Dr. Dobb's Electronic Review of Computer Books
Read the full review for this book.
Compared to other Windows NT device-driver development books, Developing Windows NT Device Drivers is hardware-oriented. A lot of real hardware-related information is presented, including small circuit diagrams and views about throwing hardware at debug problems with extender cards and bus/logic analyzers using products from various tool vendors such as Vmetro and Catalyst Enterprises. A lot of products are mentioned, including libraries and debugging tools from vendors such as Bluewater Systems and Compuware/NuMega.
Dekker and Newcommer could have subtitled this book, "My life in device-driver development." There are a lot of digressions, including brief and mostly interesting references to DEC system-10, RS/6000, Windows 3.x, CP/M, and a CMU symmetric multiprocessor research project. Everything related to driver development gets a mention, even if briefly, according to the authors, "for completeness." The authors appear to be quite fond of footnotes, many of which are off topic comments. A lot of the asides include general advice, from which compiler to use (Microsoft will have no sympathy, if you don't use Visual C++) to which books to read on specific buses. (They like the mindshare books, as do I.) The authors are adamant on some subjects such as ISA plug-and-play (just don't do it) and Hungarian notation. I never trust other people's code and take it at face value. If you don't like Hungarian notation, ignore it. --Regan Russell, Dr. Dobb's Electronic Review of Computer Books -- Dr. Dobb's Electronic Review of Computer Books
See all Editorial Reviews