The Definitive Guide to Windows API Programming, Fully Updated for Windows 7, Windows Server 2008, and Windows Vista Windows System Programming, Fourth Edition, now contains extensive new coverage of 64-bit programming, parallelism, multicore systems, and many other crucial topics. Johnson Hart's robust code examples have been updated and streamlined throughout. They have been debugged and tested in both 32-bit and 64-bit versions, on single and multiprocessor systems, and under Windows 7, Vista, Server 2008, and Windows XP. To clarify program operation, sample programs are now illustrated with dozens of screenshots. Hart systematically covers Windows externals at the API level, presenting practical coverage of all the services Windows programmers need, and emphasizing how Windows functions actually behave and interact in real-world applications. Hart begins with features used in single-process applications and gradually progresses to more sophisticated functions and multithreaded environments. Topics covered include file systems, memory management, exceptions, processes, threads, synchronization, interprocess communication, Windows services, and security. New coverage in this edition includesLeveraging parallelism and maximizing performance in multicore systems Promoting source code portability and application interoperability across Windows, Linux, and UNIX Using 64-bit address spaces and ensuring 64-bit/32-bit portability Improving performance and scalability using threads, thread pools, and completion ports Techniques to improve program reliability and performance in all systems Windows performance-enhancing API features available starting with Windows Vista, such as slim reader/writer locks and condition variables A companion Web site, jmhartsoftware.com, contains all sample code, Visual Studio projects, additional examples, errata, reader comments, and Windows commentary and discussion.
Solid, up-to-date (through kernel 6.0 build 6001 AKA Windows Server 2008) coverage of the Windows Base Systems API, clearly designed for the programmer who has been rocking UNIX coast-to-coast for a decade, and now finds himself required to deliver product to a Windows audience.
One might not think this a major demographic, but the path seems thus: (1) Promising computer scientists are attracted to UNIX in their youth due to its power, sanity, and elitism. (2) Said programmers get into systems programming, because it's (a) the natural domain of badasses and (b) the dominant genre of UNIX code jobs. (3) Enabled by the power of open source and the UNIX programming environment, they become the dominant programmers of their generations. (4) PROFIT (in what other industries, save finance, can you easily make six figures at twenty?) (5) They develop social consciences, and leave the server room to code for public consumption, Vanguard accounts fattened like Arctic seals. (6) Public consumption means dealing with Redmond.
Thus, there's likely plenty of space for a serious, focused book guiding the experienced UNIX systems programmer through Windows, explaining things in idioms familiar to UNIX hackers. Frequent reference is made to Stevens+Rago's essential Second Edition of Advanced Programming in the UNIX Environment, and indeed this book might be largely unintelligible without having read that tome. One comes away with rather deep respect, I must admit, for the Win64 API and where it's come. In several areas (the fibre formalism of user-scheduled threads/coroutines, the standardized approach to arena allocators (most unfortunately named "heaps"), the promotion of PIDs within the API from numerics to capabilities, etc), it's well ahead of what's available on a standard Linux/FreeBSD deployment (Solaris hackers may feel justified in cackling at this point). For first-timers, I'd recomment APIUEe2, followed only then by this book. --- ...and a chill filled the room...
A good reference covering Windows systems programming constructs and mechanisms, including those newly introduced in Windows 7 and Windows Server 2008 (e.g. slim readers/writers locks, condition variables).
This book was mistitled, it should have been called How to speed up your programs and improve their communication. Those were the primary things that the author talked about and while this is suppose to be a book about Windows Programing the author mentioned UNIX and Linux so often the I wondered what system he was referring to. Also, none of the example program listing pertained to the real world and he breezed over his topics so lightly it leaves the reader scratching his/her head.
The second biggest problem with the book is that the author makes references to things in the beginning of the book that he will be covering at the middle or end. Leaving the reader confused, this also cause the reader to be flipping back and forth through the book like a chicken with its head cut off.