1. Introduction. One Hundred and Ten Questions About Windows NT and 95. Compiling Code. Terminology. Error Handling. Handles and Objects. Using the Microsoft Documentation. Bugs in the 32-Bit API. Differences Between Windows 95 and Windows NT.
2. Files. The Possibilities. Overview. Opening and Reading from a File. Getting and Setting File Information. File Operations. Temporary Files. File Reading and Writing. Asynchronous File Operations. File Locking. Compressed Files. File Mapping. Conclusion.
3. Drives. The Possibilities. Getting Volume Information. Getting Drive Types. Getting Free Space. Getting Logical Drives and Drive Strings. Setting the Volume Label. WNet Functions. Conclusion.
4. Directories. The Possibilities. Creating and Deleting Directories. Getting and Setting the Current Directory. Searching for a File. Traversing Directory Trees. Combining Capabilities. Detecting Changes to Directories and Files. Conclusion.
5. Processes and Threads. The Possibilities. Introduction. Simple Examples. Using Threads in GUI Applications. Matching the Number of Threads to the Number of CPUs. Using Thread Local Storage. Thread Priorities. Other Thread Functions. Processes. Inheriting Handles. Interprocess Communication. Conclusion.
6. Synchronization. Understanding the Problem. Four Different Synchronization Methods. Deadlocks, Starvation, and Other Synchronization Bugs. Wait Functions. Overlapped I/O. Change Functions. Integrating Synchronization into MFC Programs. Conclusion.
7. Network Communications. The Possibilities. Understanding Your Options. Mailslots. Named Pipes. Named Pipe Client/Server Systems. Connecting with UNIX and Other TCP/IP Machines. UDP Connections. TCP Connections. Conclusion.
8. Remote Procedure Calls. The Possibilities. The Basic Idea. Design Issues. Creating RPCs. Understanding RPCs at a High Level. Parameter Passing. Understanding the Code. Setting up a Name Server in the Registry. Manual Binding with Implicit Handles. An RPC Server for Mandelbrot Sets. Improving the Mandelbrot RPC Server. Explicit Handles. Context Handles. Common Questions. Conclusion.
9. Services. The Possibilities. Understanding Services. Service Choreography. The Simplest Service. Installing and Removing a Service. Displaying Dialogs from within a Service. Multiple Services in an Executable. Getting and Setting Configuration Information. Controlling Services. Enumerating Services. Placing an RPC Server in a Service. Conclusion.
10. Security. The Possibilities. Understanding the Terminology and Concepts of the NT Security System. NT Security Vocabulary. Simple Examples. Securable Objects and Access Rights. Examining Existing Access Tokens and Security Descriptors. Privileges. Adding and Deleting ACEs. Impersonation. Conclusion.
11. Consoles. The Possibilities. Raw versus Cooked Input. Simple Examples. Raw Input. Other Input Events. Other Capabilities. Conclusion.
12. Communications. The Possibilities. Understanding Serial Communications. A Simple Communications Application. Getting Communications Events. A Simple Bulletin Board System. Flow Control. A Simple TTY Terminal Program. Other Communications Functions. Conclusion. 13. System Information. The GetSystemInfo Function. Other System Information Functions. Getting and Setting Environment Strings. Shutting Down the System.
14. Dynamic Link Libraries. The Possibilities. Overview. Creating a Simple DLL. Understanding a Simple DLL. Load-time versus Run-time Linking. DLL Entry Points. Memory Models. Conclusion.
15. Miscellaneous. Registry. The Event Log. Time. Memory. Structured Exception Handling. Error Handling.
A. Compiling the Code in This Book. B. Contacting the Author. C. Error Codes. Index.