![]()
According to Chris Sells, publishers think that people are reluctant to buy volumes thicker than about 800 pages. Well, "Inside MS Windows" has 900 pages in its third edition. The fourth edition of the book just came out and it is almost 1000 pages! David Solomon and Mark Russinovich probably do not need to worry about the size, because they have excellent reputation in the programming community.
The book has 14 chapters and provide detail explanation of internetworking of Windows Operating System. Authors had access to Windows source code and provide architectural overview with numerous diagrams and kernel debugger exercises. First 6 chapters of the book are a very useful reading for a software engineer, a system administrator or a technical support specialist. The remainder of the book is somewhat more technical but is probably the only place where you can find detailed information on such Windows Internals as memory , storage and cache management, as well as, networking I/O and crash dumps.
The book starts with the description of System Architecture and explanation of how different user level calls interact with Kernel level functions to complete API calls. For example, ReadFile and WriteFile APIs are translated into NtReadFile and NtWriteFile kernel functions. There is also an extensive discussion on how Kernel mode is implemented and how it interacts with hardware through device drivers. Along the way, authors introduce numerous free tools from sysinternals.com which are indispensable to most software developers.
Two other indispensable tools are also introduced in this book: Dependency Walker and Dr. Watson. Dependency Walker is a fantastic tool and shows dependencies (including runtime!) of an executable and what methods it exports. Dr Watson is a simple crash dump utility that report unhandled exceptions on the user's machine and what process, where and when caused them.
The book also introduces Microsoft's support tools that are available through MSDN subscription. These tools provide hundreds of useful utilities for debugging and troubleshooting application problems.
The book is not an easy read and you will fall asleep multiple times before getting to the end. But trust me, the pearls you find on your way to the last page are well worth the effort. Besides, there is nothing wrong with a good nap :-)