Electronic Review of Computer Books

[ ERCB Home | New | Feature | Brief | DDJ | Letters | Links ]

[an error occurred while processing this directive]

Vital Statistics

Title The Windows NT Device Driver Book: A Guide for Programmers
Author Art Baker
Publisher Prentice Hall
http://www.prenhall.com/
Copyright 1997
ISBN 0-13-184474-1
Pages 520
Price $49.99


A Guide Past Its Prime

The Windows NT Device Driver Book, by Art Baker, was the first -- and for a long time the only -- book on Windows NT device-driver development. This book is obviously adapted from course notes at a time when no other books on the topic existed and may be suitable as an additional reference in an undergraduate or post-graduate course or as a primary text in a trade-school subject. Often, the amount and quality of information available on a subject improves over time.

At just over 520 pages, The Windows NT Device Driver Book is half the length and less longwinded than more recent texts. However, it is less complete than more recent books and has been criticized as inaccurate on NT DDK mail lists and (with the advent of Windows 2000 and WDM drivers) out of date. Still, some minor things are covered in this book that are not covered in the current crop of books. This includes using hardware compatibility test suites (the HCT CD-ROMs in the MSDN) as a part of stress testing drivers and using DUMPEXAM as well as WinDbg.exe to read crash dumps.

As well as including some minor additional development notes, out of the current crop of books on Windows NT device-driver development, The Windows NT Device Driver Book is the only one that includes example source code on any form of media. However, this is not particularly useful, as there are dozens of (possibly more relevant to your project) example drivers on the DDK CD-ROM.

There is a CreateFile(), ReadFile(), DeviceIOControl(), CloseHandle() Win32 application program (to test a driver) example in the text, which should be understood by an NT systems programmer before attempting driver development anyway. There is a higher ratio of code to theory than other texts but it is not too bad. Driver examples are mostly relevant and there is little, if any, protocol-specific code to get bogged down in.

This book also provides a different philosophical perspective in the driver development process. Some of the advice given is timeless and insightful. In particular, the precept to consider the big picture and change the logic and not to turn yourself into a human peep-hole optimizer, being creative and measuring everything. Some of the advice appears in footnotes.

The build environment and development process is covered but compared to other books on the subject, Windows NT Device Driver Book is less helpful and you will probably spend more time with online documentation and trial and error.

Baker has covered some RISC topics where there are variations from the dominant Intel architecture. An example here is the kernel stack size. In discussing this topic, all hardware versions of Windows NT are covered: Alpha, Intel, Power PC, and MIPS. The discussion of the no longer supported MIPS and PowerPC platforms is an example of how dated this book is. A brief discussion of hardware buses covered includes PCI, EISA, and ISA. For a device-driver book, there is very little coverage of hardware. In any case, the standards specification is probably the best reference (for example, the ANSI SCSI standard) if you are working on SCSI drivers.

In terms of organization and structure, Baker jumps around a bit. He starts with an introduction to kernel structures and interfaces. Then he leads on with hardware details and jumps into kernel mode programming and driver issues. NT-specific driver issues follow, such as initialization, driver dispatch, data transfers, timers, full duplex drivers, DMA drivers, system threads, and higher level drivers. Then there is a divergence back to process-oriented topics such as build and installation, testing and debugging, and performance. The book concludes with Appendix A ("The Development Environment") and Appendix B ("Bug Check Codes").

In its time, The Windows NT Device Driver Book, was one of the few companions to online resources, the DDK, and magazine articles for the Windows NT device-driver programmer. There has since been a plethora of books on the subject published. If this aging book has some merit, it is that it is cheaper and lightweight. Possibly, in light of the competition, this book may be more suitable for students than professionals. It still covers the core topics of kernel mode objects, how DMA works under Windows NT, driver dispatch routines, I/O transfers, and the like.

-- Regan Russell


Quick Rating

Readability Star Star Star
Originality Star Star
Organization Star Star
Accuracy Star Star Star
Consistency Star Star
Depth Star Star Star
Timeliness Star Star
Editing Star Star
Design Star Star Star
Overall Value Star Star

Explanation of ERCB rating scale: No stars = unacceptable, 1 Star = marginal, 2 Stars = average, 3 Stars = above average, 4 Stars = exceptional.


Copyright © 1999 Electronic Review of Computer Books
Created 5/24/1999 / Last modified 5/24/1999 / webmaster@ercb.com