Learning Windows Internals

Coming straight out of the UNIX-dominated academic world, I realized that I have negligible knowledge of the Windows system architecture and kernel. Systems courses taught in most schools only use the UNIX-platform. So I have no idea what the windows message pump is, or how the kernel manages processes and threads or why they put the entire graphics subsystem into the kernel. Besides architectural questions, I am curious to know how to open a socket, create a thread and use synchronization primitives. After visiting Borders a couple of times and reading reviews on the web, I finally decided to get two interesting books:

These books make an interesting combination for anyone interested in studying Windows concepts as well as the API from an OS point of view.