Win32 Multithreaded Programming
Also try some of the free undergraduate podcasts on operating systems. You can find theoretical discussions on locking, multithreading, etc. (the one I know of is from Berkeley and is based on Java, but it is still relevant).