Key Driver Concepts and Driver Development books
While looking at the traffic at the OSR ndev mailing list I saw that some introductory questions are answered in Microsoft's Key Driver Concepts page. The links in this page include (but are not limited to) information about:
- Synchronization primitives (mutexes, fast mutexes, semaphores, spinlocks, etc)
- Memory management
- Windows scheduling
- C vs C++ as a language for driver development
- User-Mode Interactions: Guidelines for Kernel-Mode Drivers
- Recommended Functions for Kernel-Mode Drivers
- Cancel Logic in Windows Drivers
- How to Port WDM Drivers to KMDF
- and many more...
Also, I would like to like to provide a brief list of the most popular books for development of windows device drivers:
- Programming the Microsoft Windows Driver Model, Second Edition by Walter Oney (2002): The latest (and possibly the most complete) book on drivers. It covers all Plug-n-Play drivers in detail.
- The Windows 2000 Device Driver Book: A Guide for Programmers (2nd Edition) by Art Baker and Jerry Lozano (2000): A classic book for windows device drivers, however it's definately showing its age. It covers the WDM model for Windows 2000 and is short in legnth (less than 500 pages) compared to the rest of the books
- Writing Windows Wdm Device Drivers: Covers Nt 4, Win 98, and Win 2000 by Chris Cant (1999): Another relatively short in length easy to read book that is currently outdated, since it covers earlier versions of windows.
- Windows NT Device Driver Development by Viscarola and Mason, published by New Riders (1998, reprint in 2006): (Copying from OSR's website) Written by OSR's consulting partners, this book contains the details about the NT I/O subsystem. The only disadvantage of this book is that it was written in the NT V4 timeframe, before Win2K and therefore before the introduction of Plug and Play support. No matter, it's still the most solid architectural reference around.
- Developing Windows NT Device Drivers: A Programmer's Handbook by Edward Dekker and Joseph Newcomer (1999): It is a thick (over 1200 pages), extensive and verbose books that covers every aspect of Windows device drivers. You can find a review here.
Finally, for those curious/interested to learn about windows NT's history, I would like to point out the book Show Stopper! Cloth: THE BREAKNECK RACE TO CREATE WINDOWS NT AND THE NEXT GENERATION AT MICROSOFT by Pascal Zachary (1994). It is a short (around 300 pages), easy-to-read book that describes both Windows NT's creation by David Cutler (chief architect), and Microsoft's culture. The book is out of print, but it's definately worth reading.