Recommended Windows Programming Books

JMN Books
MVP Tips Page
Microsoft Windows Internals, by David A. Solomon and Mark Russinovich

The definitive book on NT internals. A must-have. For the serious Windows programmer, this is not optional.

amzn-buy.gif (3051 bytes)
The Security Development Lifecycle, by Michael Howard and Steve Lipner; Microsoft Press, 2006 amzn-buy.gif (3051 bytes)
Writing Secure Code For Windows Vista, by Michael Howard and David LeBlanc; Microsoft Press, 2007 amzn-buy.gif (3051 bytes)
Win32 System Services, by Ron Reeves and Marshall Brain

This is the book I used to learn how to write Windows NT Services. I used this in an earlier edition. This version is substantially updated for Win98 and Windows 2000. If you have an earlier edition of this book, you want to buy this one, which has many more chapters and covers many new topics such as RPC.

amzn-buy.gif (3051 bytes)
Windows NT Device Driver Development, by Peter Viscarola and Tony Mason

So what is someone who has written a book on NT drivers doing recommending a book by the competition? Simple. You can't have too many books on how to write NT drivers. We each approach the problem from a different direction. This book presents some information we don't have, and we present information it doesn't have. Together, we both cover enough material that we ideally will be able to answer all your questions. Besides, Peter Viscarola and Tony Mason are a couple of the best in the business.

amzn-buy.gif (3051 bytes)
Developing Drivers with the Windows Driver Foundation, by Penny Orwick and Guy Smith, Microsoft Press, 2007 amzn-buy.gif (3051 bytes)
MFC Internals, by George Shepherd, Scott Wingo, and Dean D. McCrory

What is really going on under the floor in MFC. Even after using MFC for five years, and teaching courses in it (including a course developed by Alan Feuer), I learned useful facts from this book. If you want to push the envelope of MFC, or just know how to accomplish some interesting goal by knowing what is actually possible--and not just tricks, but insights into what is legal MFC, this is the book of choice.

amzn-buy.gif (3051 bytes)
MFC Programming, by Alan Feuer

A perfect companion for our Win32 Programming book; this book explains MFC, and gives an overview of most of the controls. Since Alan knew Win32 Programming was in the works, he often references our book if you care about the infinite details of controls, while he concentrates on the overall MFC picture, the document/view architecture, and other MFC-specific technology. You can use it standalone, or with our book (of course, we prefer you do the latter...).

amzn-buy.gif (3051 bytes)
Undocumented Windows NT by Prasad Dabak, Sandeep Phadke, and Milind Borate

This is a deep geek book. You really have to be morbidly curious to want to own this book, but for those of us who are (and I am), it is a very interesting book. Details about memory management, system services, the PE format, and other goodies are found here. While a low-priority book for the general programmer, a must-have for the fanatics. (I bought it after a quick perusal of the table of contents, and read it cover to cover the same day. Recommended).

amzn-buy.gif (3051 bytes)
C: A Reference Manual, by Samuel P. Harbison and Guy L. Steele Jr.

This is one of the best and most readable reference books on the C language, far better than the classic Kernighan and Ritchie book (which I think is more a rambling narrative than a good language description). A must-have book for any serious C programmer. And I'm not giving a plug just because Guy and Sam are friends and we were all working for Tartan when it was first written; it is really well written.

amzn-buy.gif (3051 bytes)
Windows Sockets Network Programming, by Bob Quinn and Dave Shute.

This is one of the two critical books you need if you are going to program WinSock. Among its many other useful features, it has the absolutely best description of all of the WinSock error codes and what you likely did to get them, or what state on the network caused them. If you're going to program sockets, you need this book (as well as Comer & Stevens, below)

amzn-buy.gif (3051 bytes)
Internetworking with TCP/IP Vol. III Client-Server Programming and Applications-Windows Sockets Version, by Douglas Comer and David Stevens.

This is the third volume of a series; if you are deeply into networking, or want to know more about what is going on under the floor, you will also want Internetworking with TCP/IP Volume I, Principles, Protocol and Architecture & Internetworking with TCP/IP Volume II, Design, Implementation and Internals. Note that volume III comes in several flavors, including a Unix/Linux N version. You want the one specifically for Windows.

amzn-buy.gif (3051 bytes)
Windows NT/2000 Native API Reference by Gary Nebbett.

This is one of those books that you will probably never need, and the knowledge in it is knowledge that you should probably never use, because most of it is undocumented, which is Microsoft's official designation for "we feel free to change it any time without telling you, and breaking anything you did that used it, and we don't care", which is an attitude that it may surprise you to learn that I agree with. However, The native API is nonetheless and important piece of Windows NT/2000, and the author presents here material that is absolutely unavailable elsewhere. For those of you who either have morbid curiosity, a desire to know the real innards of NT, or just like to have a complete library, it is a Must Have (OK, I have it; you get to guess which of the categories I fit...)

amzn-buy.gif (3051 bytes)
The Unicode 5.0 Standard

It's the era of Unicode.  Visual Studio .NET 2005 defaults to creating Unicode apps.  VB, Java and C# have supported Unicode for years.  You should really understand it.  This is a relatively expensive book to buy new, but it is the absolutely most up-to-date version of the standard (as of December 2006) and if you have any intention of internationalization, you really need to have it as a reference.  The new edition contains material previously not published in hardcopy form.

I've had two previous editions, the 1.0 and 3.0 standards, and they got lots of little sticky-tags marking important sections.  The real effort for me was making sure I transferred all the tags across.

amzn-buy.gif (3051 bytes)
For Grandmas Who Do Windows, by Amy Lowenstein

OK, so it isn't a programming book. But it is good, especially for its intended audience. Some of us even have mothers or grandmothers who are trying to learn the computer (for example, I got a call from my 80-year-old mother who was concerned that the computer had done something illegal...and it even said it did!)

I worked with Amy over 20 years ago, when she was producing a useful guide on Mideast literature. She used my program, one of the earliest publish-from-database programs around, to create the book, including its various indices and cross-references. Diana Bajek was her primary developer of her application, and I added a lot of features to my program to support the Mideast literature project. It was neat to see her name come around again in an article in our local paper, telling about this book. So I made contact with her and we had a pleasant chat. At 75, she knows a great deal more about electronic documentation than most of the creators of said documentation.

amzn-buy.gif (3051 bytes)

Last modified: March 04, 2008