This book wouldn't contain the depth of technical detail or the level of accuracy it has without the review, input, and support of key members of the Microsoft Windows 2000 development team. Therefore, we would like to jointly thank the following people from Microsoft for both their technical review as well as the time they spent with us explaining the rationale for the myriad details that comprise this world-renowned operating system:
- First and foremost, Dave Cutler, Senior Distinguished Engineer and the original architect of Microsoft Windows NT. Dave originally approved David Solomon's source code access and has been supportive of his work to explain the internals of Windows NT through his training business as well as during the writing of Inside Windows NT, second edition. Besides reviewing the chapter on processes and threads, Dave answered many questions on the kernel architecture of the system and wrote a historical perspective for this edition.
- Jim Allchin, for writing the Foreword to this book and for prodding us to add a chapter on networking.
- Lou Perazzoli, Distinguished Engineer (previously director of the Windows 2000 Base Team and author of the original memory manager for Windows NT). Lou was the primary champion for Inside Windows NT, second edition (he wrote the Foreword) and continued this role during the initial phases of the development of Windows 2000.
- Rob Short, vice president of the Windows 2000 Base Team, who made sure we had the resources we needed as well as access to the relevant people. Rob also provided direction on the overall content of the book.
- Landy Wang, lead developer for the memory manager, for making us feel welcome on the numerous times we stopped by and interrupted him to ask questions. Landy was always willing to take time to review chapter drafts as well as provide the rationale for the intricacies of this very complicated part of the system, even when others were waiting in line in the hallway to see him!
- Mark Lucovsky, Distinguished Engineer and architect in the Windows 2000 Base Team, for answering technical questions about many areas of the system.
- Richard Ward, for reviewing multiple drafts of the security chapter as well as the section on services. Richard also met with us more than once to provide technical review input.
- John Vert, who reviewed the sections on interrupt handling, the HAL, and the registry. John was also a key source for the rationale behind early Windows NT design decisions.
- Neil Clift, whose intimate knowledge of the Windows 2000 kernel components helped us iron out several details about the object manager and other areas.
- Dan Lovinger, for reviewing the cache manager, storage management, and file systems chapters.
- Adrian Oney and Nar Ganapathy, for reviewing the I/O chapter and helping to make the presentation of Plug and Play more lucid. Adrian was especially generous with his time and clarified some of the trickier aspects of the I/O system.
- Tom Fout, who guided the content of the networking chapter and coordinated the chapter's review by the key developers.
- Dragos Sambotin, for reviewing the registry section.
- Praerit Garg and Robert Reichel, for reviewing the security chapter.
- Michael Maston and Alan Warwick, for reviewing the WMI section.
- Keith Kaplan, for reviewing the storage and file systems chapters
- Catharine van Ingen for reviewing the storage chapter.
- David Golds, Brian Andrews, and Mark Zbikowski, for reviewing the file systems chapter.
- Tim Moore, Ryszard Kott, Mario Goertzel, Yun Lin, Steven Nelson, Ilan Caron, Gurdeep Singh Pall, David Orbits, and the other networking developers, who improved the accuracy and organization of the networking chapter.
- Andre Vachon, for helping us with facets of the kernel debuggers (and for building a new set!).
- Jon Schwartz, who reviewed the most chapters of any single Microsoft employee—thanks for your excellent comments!
- Joseph Joy, for reviewing the first two chapters from the reader's point of view.
We also want to thank the following people from Microsoft Press (two of whom have since left) for their contribution to this book:
- Eric Stroo, previously acquisitions manager (but now enjoying the spoils of life after Microsoft), who, as with the previous edition, maintained a stern but supportive stance in regard to the book schedule.
- Ben Ryan, previously acquisitions editor (but now with another publisher), who took the reins from Eric but was gentler in his prodding for chapter deliveries.
- Sally Stickney, project editor, whose art and skill with the English language combined with her dogged attention to detail yet again amazed us throughout the whole process. Sally: you were kinder this time.
- Jean Ross, technical editor, who strove to catch each and every technical inconsistency. Jean continually amazed both of us with her tenacious verification of technical details.
We also want to thank Mark Smith, Karen Forster, Dianne Russell, and the rest of the staff of Windows 2000 Magazine (www.win2000mag.com) for granting us permission to draw content from Mark's "Internals" columns for the book.
Finally, the following external reviewers also merit special thanks:
- Jamie Hanrahan, of Azius Developer Training (www.azius.com), who coauthored the Windows NT/Windows 2000 Internal Architecture class from which this book was based. Jamie, who has a real knack for explaining complicated concepts in a simple and practical fashion, developed several of the explanations and a number of the diagrams and figures.
- Brian Catlin, also of Azius Developer Training, for reviewing Chapters 2, 3, and 9 and for providing both technical input as well as excellent suggestions that improved the clarity of presentation.
- Jeffrey Richter, of Wintellect (www.wintellect.com), who, as with the previous edition, reviewed several chapters and cajoled the authors throughout the entire process. All those dinners in Bellevue with Jeff at the end of long hard days of writing kept us going.
- Rich Neves, of ReefEdge Inc. (www.reefedge.com), for reviewing the I/O and networking chapters.
- Andrew Tanenbaum, of the University of Amsterdam, who provided us with a slew of suggestions for improving the file systems chapter's organization and presentation.
- John Tracey, of IBM Research, for reviewing the networking chapter.
- Keith Moore, previously of Microsoft, for reviewing the networking chapter.
There were others who answered questions in the hallway or cafeteria and provided technical material—if we missed you, please forgive us!
The next two sections contain the authors' individual acknowledgements.