BKWNTFSI.RVW 971123 "Windows NT File System Internals", Rajeev Nagar, 1997, 1-56592-249-2, U$49.95/C$70.95 %A Rajeev Nagar %C 103 Morris Street, Suite A, Sebastopol, CA 95472 %D 1997 %G 1-56592-249-2 %I O'Reilly & Associates, Inc. %O U$49.95/C$70.95 800-998-9938 707-829-0515 fax: 707-829-0104 %O nuts@ora.com %P 816p. + diskette %T "Windows NT File System Internals: A developer's Guide" I have reviewed books by people who said that they wanted to prove that programming sendmail could be "fun". I have reviewed books about tediously arcane topics that turned out to be so well written that I enjoyed reading them. I have reviewed books that dedicated the majority of the pages therein to proving that everyone should be interested in the topic of the book. I don't think that I have ever read a book that started out with the author admitting that he found "it hard to imagine why anyone would want to subject themselves to more than 700 pages of excruciatingly detailed information about the I/O subsystem and associated components." Well, this book is aimed at programmers (excuse me, "developers"), and that is what they want: excruciating detail. Nagar, though, provides much more than simply detail. There is a thorough analysis informing the book that makes it much more valuable than any mere list of API (Application Programming Interface) calls. Even in the first, overview, chapter, there are sidebar notes, having little or nothing to do with the file system, that point out fascinating, and possibly vital, aspects to programming the system. Therefore, while the text is aimed at the developer of file systems drivers, it has many valuable things to say to anyone interested in Windows NT internals. (As a member of the virus research community, I was delighted to find a detailed explanation of the boot sequence for NT.) Part one provides an overview, looking at Windows NT system components (concepts, kernel, and executive), file driver development, and structured driver development. Part two examines the NT managers: the I/O manager, virtual memory manager, and three chapters on the cache manager. Part three has three progressive chapters on the writing of file system drivers. These move through driver entry to file creation, reading, and writing, on to file information, directory control, cleanup, and file closure, and eventually to file buffer flushing, volume information, byte-range locks, opportunistic locking, device control, and file system recognizers. A final chapter covers filter drivers. Appendices deal with Windows NT system services, MPR (Multiple Provider Router) support, kernel mode drivers, debugging support, recommended readings, and additional sources of help. There is a great deal about Windows NT that needs to be documented and explained. This book provides an enormous amount of very valuable information for developers. More than that, however, Nagar has been able to produce clear and readable text about this vital topic, and his work will be of use to many non-programmers who need this level of detail and analysis. copyright Robert M. Slade, 1997 BKWNTFSI.RVW 971123