Advanced Windows Programing

Advanced Windows Programming with C++

  1. Kernel Objects
    • What Is a Kernel Object?
    • SA Process's Kernel Object Handle Table
    • Haring Kernel Objects Across Process Boundaries
  2. Thread Basics
    • When to Create a Thread
    • When Not to Create a Thread
    • Writing Your First Thread Function
    • The CreateThread Function
    • Terminating a Thread
    • Some Thread Internals
    • C/C++ Run-Time Library Considerations
  3. Thread Scheduling, Priorities, and Affinities
    • Suspending and Resuming a Thread
    • Suspending and Resuming a Process
    • Sleeping
    • Switching to Another Thread
    • A Thread's Execution Times
    • Putting the Context in Context
    • Thread Priorities
    • An Abstract View of Priorities
    • Programming Priorities
    • Affinities
  4. Thread Synchronization in User Mode
    • Atomic Access: The Interlocked Family of Functions
    • Cache Lines
    • Advanced Thread Synchronization
    • Critical Sections
  5. Thread Synchronization With Kernel Objects
    • Wait Functions
    • Successful Wait Side Effects
    • Event Kernel Objects
    • Waitable Timer Kernel Objects
    • Semaphore Kernel Objects
    • Mutex Kernel Objects
    • A Handy Thread Synchronization Object Chart
    • Other Thread Synchronization Functions
    • Other Thread Synchronization Functions
  6. DLL Basics
    • DLLs and a Process's Address Space
    • The Overall Picture
    • Building the DLL Module
    • Building the Executable Module
    • Running the Executable Module
  7. DLL Advanced Techniques
    • Explicit DLL Module Loading and Symbol Linking
    • The DLL's Entry-Point Function
    • Delay-Loading a DLL
    • Function Forwarders
    • Known DLLs
    • DLL Redirection
    • Rebasing Modules
    • Binding Modules
  8. Thread-Local Storage
    • Dynamic TLS
    • Static TLS
  9. Window Messaging
    • A Thread's Message Queue
    • Posting Messages to a Thread's Message Queue
    • Sending Messages to a Window
    • Waking a Thread
    • Sending Data with Messages
    • How Windows Handle ANSI/Unicode Characters and Strings
  10. The Hardware Input Model and Local Input State
    • The Raw Input Thread
    • Local Input State
    • Attaching Virtualized Input Queues and Local Input State Together