Windows 10 System Programming, Part 2
โ Scribed by Pavel Yosifovich
- Publisher
- Independently published
- Year
- 2021
- Tongue
- English
- Leaves
- 625
- Edition
- Bilingual
- Category
- Library
No coin nor oath required. For personal study only.
โฆ Synopsis
Delve into programming the Windows operating system through the Windows API in with C++. Use the power of the Windows API to working with processes, threads, jobs, memory, I/O and more. The book covers current Windows 10 versions, allowing you to get the most of what Windows has to offer to developers in terms of productivity, performance and scalability.This is the second part, continuing "Windows 10 System Programming part 1".
โฆ Table of Contents
Table of Contents
Introduction
Who Should Read This Book
What You Should Know to Use This Book
Sample Code
Chapter 13: Working With Memory
Memory APIs
The VirtualAlloc* Functions
Decommitting / Releasing Memory
Reserving and Committing Memory
The Micro Excel Application
Working Sets
The Working Sets Application
Heaps
Private Heaps
Heap Types
Heap Debugging Features
The C/C++ Runtime
The Local/Global APIs
Other Heap Functions
Other Virtual Functions
Memory Protection
Locking Memory
Memory Block Information
Memory Hint Functions
Writing and Reading to/from Other Processes
Large Pages
Address Windowing Extensions
NUMA
The VirtualAlloc2 Function
Summary
Chapter 14: Memory Mapped Files
Introduction
Mapping Files
The filehist Application
Sharing Memory
Sharing Memory with File Backing
The Micro Excel 2 Application
Other Memory Mapping Functions
Data Coherence
Summary
Chapter 15: Dynamic Link Libraries
Introduction
Building a DLL
Implicit and Explicit Linking
Implicit Linking
Explicit Linking
Calling Conventions
DLL Search and Redirection
The DllMain Function
DLL Injection
Injection with Remote Thread
Windows Hooks
DLL Injecting and Hooking with SetWindowsHookEx
API Hooking
IAT Hooking
``Detours'' Style Hooking
DLL Base Address
Delay-Load DLLs
The LoadLibraryEx Function
Miscellaneous Functions
Summary
Chapter 16: Security
Introduction
WinLogon
LogonUI
LSASS
LsaIso
Security Reference Monitor
Event Logger
SIDs
Tokens
The Secondary Logon Service
Impersonation
Impersonation in Client/Server
Privileges
Super Privileges
Access Masks
Security Descriptors
The Default Security Descriptor
Building Security Descriptors
User Access Control
Elevation
Running As Admin Required
UAC Virtualization
Integrity Levels
UIPI
Specialized Security Mechanisms
Control Flow Guard
Process Mitigations
Summary
Chapter 17: The Registry
The Hives
HKEY_LOCAL_MACHINE
HKEY_USERS
HKEY_CURRENT_USER (HKCU)
HKEY_CLASSES_ROOT (HKCR)
HKEY_CURRENT_CONFIG (HKCC)
HKEY_PERFORMANCE_DATA
32-bit Specific Hives
Working with Keys and Values
Reading Values
Writing Values
Deleting Keys and Values
Creating Registry Links
Enumerating Keys and Values
Registry Notifications
Transactional Registry
Registry and Impersonation
Remote Registry
Miscellaneous Registry Functions
Summary
Chapter 18: Pipes and Mailslots
Mailslots
Mailslot Clients
Multi-Mailslot Communication
Anonymous Pipes
The Command Redirect Application
Named Pipes
Pipe Client
The Pipe Calculator Application
Other Pipe Functions
Summary
Chapter 19: Services
Services Overview
Service Process Architecture
A Simple Service
Installing the Service
A Service Client
Controlling Services
Installing a Service
Starting a Service
Stopping a Service
Uninstalling the Service
Service Status and Enumeration
The enumsvc Application
Service Configuration
Service Description
Failure Actions
Pre-Shutdown Information
Delayed Auto-Start
Trigger Information
Preferred NUMA Node
Launch as PPL
Debugging Services
Interactive Services
Service Security
Service SID
Service Security Descriptor
Per-User Services
Miscellaenous Functions
Summary
Chapter 20: Debugging and Diagnostics
Debugger Output
The DebugPrint Application
Performance Counters
Working with Counters
The QSlice Application
Process Snapshots
Querying a Snapshot
The snapproc Application
Event Tracing for Windows
Creating ETW Sessions
Processing Traces
Real-Time Event Processing
The Kernel Provider
More ETW
Trace Logging
Publishing Events with Trace Logging
Debuggers
A Simple Debugger
More Debugging APIs
Writing a Real Debugger
Summary
Chapter 21: The Component Object Model
What is COM?
Interfaces and Implementations
The IUnknown Interface
HRESULTs
COM Rules (pun intended)
COM Clients
Step 1: Initialize COM
Step 2: Create the BITS Manager
Step 3: Create a BITS Job
Step 4: Add a Download
Step 5: Initiate the Transfer
Step 6: Wait for Transfer to Complete
Step 7: Display Results
Step 8: Clean Up
COM Smart Pointers
Querying for Interfaces
CoCreateInstance Under the Hood
CoGetClassObject
Implementing COM Interfaces
COM Servers
Implementing the COM Class
Implementing the Class Object (Factory)
Implementing DllGetClassObject
Implementing Self Registration
Registering the Server
Debugging Registration
Testing the Server
Testing with non C/C++ Client
Proxies and Stubs
IDL and Type Libraries
Threads and Apartments
The Free Threaded Mrshalar (FTM)
Odds and Ends
Summary
Chapter 22: The Windows Runtime
Introduction
Working with WinRT
The IInspectable interface
Language Projections
C++/WinRT
Asynchronous Operations
Other Projections
Summary
Chapter 23: Structured Exception Handling
Termination Handlers
Replacing Termination Handlers with RAII
Exception Handling
Simple Exception Handling
Using EXCEPTION_CONTINUE_EXECUTION
Exception Information
Unhandled Exceptions
Just in Time Debugging
Windows Error Reporting (WER)
Vectored Exception Handling
Software Exceptions
High-Level Exceptions
Visual Studio Exception Settings
Summary
Book Summary
๐ SIMILAR VOLUMES
This book is decently written but it just doesn't have the sufficient depth. And the writing style is a little messy.