Table Of ContentTable of Contents
Table of Contents..............................................................................i
1. Concepts and Tools .....................................................................1
1.1 Windows Operating System Versions...........................................................1
1.2 Foundation Concepts and Terms...................................................................2
1.2.1 Windows API.........................................................................................2
1.2.2 Services, Functions, and Routines.......................................................4
1.2.3 Processes, Threads, and Jobs...............................................................4
1.2.4 Virtual Memory...................................................................................14
1.2.5 Kernel Mode vs. User Mode...............................................................17
1.2.6 Terminal Services and Multiple Sessions..........................................20
1.2.7 Objects and Handles...........................................................................21
1.2.8 Security................................................................................................22
1.2.9 Registry................................................................................................23
1.2.10 Unicode...............................................................................................24
1.3 Digging into Windows internals...................................................................24
1.3.1 Reliability and Performance Monitor...............................................25
1.3.2 Kernel Debugging...............................................................................27
1.3.3 Windows Software Development Kit................................................32
1.3.4 Windows Driver Kit............................................................................32
1.3.5 Sysinternals Tools................................................................................32
1.4 Conclusion.....................................................................................................33
2. System Architecture..................................................................34
2.1 Requirements and Design Goals..................................................................34
2.2 Operating System Model..............................................................................35
2.3 Architecture Overview..................................................................................36
2.3.1 Portability............................................................................................38
2.3.2 Symmetric Multiprocessing...............................................................39
2.3.3 Scalability.............................................................................................44
2.3.4 Differences Between Client and Server Versions.............................44
2.3.5 Checked Build.....................................................................................48
2.4 Key System Components..............................................................................50
2.4.1 Environment Subsystems and Subsystem DLLs..............................51
2.4.2 Ntdll.dll................................................................................................57
2.4.3 Executive..............................................................................................58
2.4.4 Kernel...................................................................................................61
2.4.5 Hardware Abstraction Layer.............................................................64
2.4.6 Device Drivers.....................................................................................67
2.4.7 System Processes.................................................................................72
i
2.5 Conclusion.....................................................................................................83
3. System Mechanisms ..................................................................84
3.1 Trap Dispatching...........................................................................................84
3.1.1 Interrupt Dispatching.........................................................................86
3.1.2 Exception Dispatching......................................................................113
3.1.3 System Service Dispatching.............................................................123
3.2 Object Manager..........................................................................................134
3.2.1 Executive Objects..............................................................................137
3.2.2 Object Structure................................................................................138
3.3 Synchronization...........................................................................................171
3.3.1 High-IRQL Synchronization............................................................172
3.3.2 Low-IRQL Synchronization.............................................................177
3.4 System Worker Threads.............................................................................196
3.5 Windows global Flags.................................................................................198
3.6 Advanced Local Procedure Calls (ALPCs)...............................................201
3.7 Kernel event Tracing..................................................................................205
3.8 Wow64..........................................................................................................210
3.8.1 Wow64 Process Address Space Layout...........................................211
3.8.2 System Calls.......................................................................................211
3.8.3 Exception Dispatching......................................................................212
3.8.4 User Callbacks...................................................................................212
3.8.5 File System Redirection....................................................................212
3.8.6 Registry Redirection and Reflection...............................................213
3.8.7 I/O Control Requests......................................................................214
3.8.8 16-Bit Installer Applications............................................................214
3.8.9 Printing............................................................................................214
3.8.10 Restrictions....................................................................................215
3.9 user-Mode Debugging.................................................................................215
3.9.1 Kernel Support..................................................................................215
3.9.2 Native Support..................................................................................217
3.9.3 Windows Subsystem Support..........................................................218
3.10 Image Loader............................................................................................218
3.10.1 Early Process Initialization............................................................220
3.10.2 Loaded Module Database...............................................................221
3.10.3 Import Parsing................................................................................224
3.10.4 Post Import Process Initialization.................................................226
3.11 Hypervisor (Hyper-V)...............................................................................226
3.11.1 Partitions..........................................................................................228
3.11.2 Root Partition..................................................................................228
3.11.3 Child Partitions...............................................................................230
3.11.4 Hardware Emulation and Support................................................232
3.12 Kernel Transaction Manager...................................................................237
3.13 Hotpatch Support......................................................................................239
ii
3.14 Kernel Patch Protection...........................................................................241
3.15 Code integrity............................................................................................244
3.16 Conclusion.................................................................................................245
4. Management Mechanisms ......................................................246
4.1 The Registry................................................................................................246
4.1.1 Viewing and Changing the Registry................................................246
4.1.2 Registry Usage...................................................................................246
4.1.3 Registry Data Types..........................................................................247
4.1.4 Registry Logical Structure...............................................................248
4.1.6 Monitoring Registry Activity...........................................................258
4.1.7 Registry Internals..............................................................................261
4.2 Services.........................................................................................................275
4.2.1 Service Applications..........................................................................276
4.2.2 The Service Control Manager..........................................................291
4.2.3 Service Startup..................................................................................293
4.2.4 Startup Errors...................................................................................297
4.2.5 Accepting the Boot and Last Known Good.....................................298
4.2.6 Service Failures.................................................................................300
4.2.7 Service Shutdown..............................................................................300
4.2.8 Shared Service Processes..................................................................302
4.2.9 Service Tags.......................................................................................304
4.2.10 Service Control Programs..............................................................305
4.3 Windows Management instrumentation...................................................306
4.3.1 Providers............................................................................................308
4.3.2 The Common Information Model and the Managed Object Format
Language.....................................................................................................309
4.3.3 Class Association...............................................................................311
4.3.4 WMI Implementation.......................................................................314
4.3.5 WMI Security....................................................................................315
4.4 Windows Diagnostic infrastructure...........................................................316
4.4.1 WDI Instrumentation.......................................................................316
4.4.2 Diagnostic Policy Service..................................................................316
4.4.3 Diagnostic Functionality...................................................................317
4.5 Conclusion...................................................................................................319
5. Processes, Threads, and Jobs .................................................320
5.1 Process Internals.........................................................................................320
5.1.1 Data Structures..................................................................................320
5.1.2 Kernel Variables................................................................................327
5.1.3 Performance Counters......................................................................327
5.1.4 Relevant Functions............................................................................328
5.2 Protected Processes.....................................................................................330
5.3 Flow of CreateProcess................................................................................332
iii
5.3.1 Stage 1: Converting and Validating Parameters and Flags..........333
5.3.2 Stage 2: Opening the Image to Be Executed...................................334
5.3.3 Stage 3: Creating the Windows Executive Process Object
(PspAllocate- Process)...............................................................................337
5.3.4 Stage 4: Creating the Initial Thread and Its Stack and Context..341
5.3.5 Stage 5: Performing Windows Subsystem–Specific
Post-Initialization.......................................................................................342
5.3.6 Stage 6: Starting Execution of the Initial Thread..........................344
5.3.7 Stage 7: Performing Process Initialization in the Context of the New
Process.........................................................................................................344
5.4 Thread Internals.........................................................................................351
5.4.1 Data Structures..................................................................................351
5.4.2 Kernel Variables................................................................................358
5.4.3 Performance Counters......................................................................358
5.4.4 Relevant Functions............................................................................359
5.4.5 Birth of a Thread...............................................................................359
5.5 Examining Thread activity.........................................................................360
5.6 Worker Factories (Thread Pools)..............................................................364
5.7 Thread Scheduling......................................................................................368
5.7.1 Overview of Windows Scheduling...................................................368
5.7.2 Priority Levels...................................................................................370
5.7.3 Windows Scheduling APIs................................................................372
5.7.4 Relevant Tools...................................................................................372
5.7.5 Real-Time Priorities..........................................................................374
5.7.6 Thread States.....................................................................................375
5.7.7 Dispatcher Database.........................................................................378
5.7.8 Quantum............................................................................................379
5.7.9 Scheduling Scenarios........................................................................386
5.7.10 Context Switching...........................................................................390
5.7.11 Idle Thread.......................................................................................390
5.7.12 Priority Boosts.................................................................................391
5.7.13 Multiprocessor Systems..................................................................404
5.7.14 Multiprocessor Thread-Scheduling Algorithms...........................412
5.7.15 CPU Rate Limits.............................................................................413
5.8 Job Objects..................................................................................................414
5.9 Conclusion...................................................................................................419
6. Security.....................................................................................420
6.1 Security Ratings..........................................................................................420
6.2 Security System Components.....................................................................422
6.3 Protecting Objects.......................................................................................425
6.3.1 Access Checks....................................................................................426
6.3.2 Security Descriptors and Access Control........................................448
6.4 Account Rights and Privileges...................................................................462
iv
6.4.1 Account Rights..................................................................................463
6.4.2 Privileges............................................................................................464
6.4.3 Super Privileges.................................................................................468
6.5 Security Auditing........................................................................................469
6.6 logon.............................................................................................................471
6.6.1 Winlogon Initialization.....................................................................472
6.6.2 User Logon Steps...............................................................................474
6.7 User account Control..................................................................................478
6.7.1 Virtualization.....................................................................................478
6.7.2 Elevation............................................................................................484
6.8 Software Restriction Policies.....................................................................489
6.9 Conclusion...................................................................................................490
7. I/O System................................................................................491
7.1 I/O System Components.............................................................................491
7.2 Device Drivers.............................................................................................495
7.2.1 Types of Device Drivers....................................................................495
7.2.2 Structure of a Driver.........................................................................501
7.2.3 Driver Objects and Device Objects.................................................503
7.2.4 Opening Devices................................................................................508
7.3 I/O Processing..............................................................................................514
7.3.1 Types of I/O........................................................................................514
7.3.2 I/O Request to a Single-Layered Driver.........................................523
7.3.3 I/O Requests to Layered Drivers.....................................................529
7.3.4 I/O Cancellation................................................................................537
7.3.5 I/O Completion Ports........................................................................541
7.3.6 I/O Prioritization...............................................................................546
7.3.7 Driver Verifier...................................................................................551
7.4 Kernel-Mode Driver Framework (KMDF)..............................................553
7.4.1 Structure and Operation of a KMDF Driver..................................553
7.4.2 KMDF Data Model...........................................................................555
7.4.3 KMDF I/O Model..............................................................................559
7.5 user-Mode Driver Framework (uMDF)....................................................562
7.6 The Plug and Play (PnP) Manager............................................................565
7.6.1 Level of Plug and Play Support.......................................................566
7.6.2 Driver Support for Plug and Play...................................................567
7.6.3 Driver Loading, Initialization, and Installation.............................569
7.6.4 Driver Installation.............................................................................578
7.7 The Power Manager....................................................................................582
7.7.1 Power Manager Operation...............................................................584
7.7.2 Driver Power Operation...................................................................585
7.7.3 Driver and Application Control of Device Power..........................589
7.8 Conclusion...................................................................................................589
8. Storage Management ..............................................................591
v
8.1 Storage Terminology...................................................................................591
8.2 Disk Drivers.................................................................................................592
8.2.1 Winload..............................................................................................592
8.2.2 Disk Class, Port, and Miniport Drivers..........................................592
8.2.3 Disk Device Objects..........................................................................596
8.2.4 Partition Manager.............................................................................597
8.3 Volume Management..................................................................................598
8.3.1 Basic Disks.........................................................................................598
8.3.2 Dynamic Disks...................................................................................600
8.3.3 Multipartition Volume Management...............................................605
8.3.4 The Volume Namespace....................................................................615
8.3.5 Volume I/O Operations.....................................................................621
8.3.6 Virtual Disk Service..........................................................................623
8.4 BitLocker Drive encryption.......................................................................625
8.4.1 BitLocker Architecture.....................................................................625
8.4.2 Encryption Keys................................................................................626
8.4.3 Trusted Platform Module (TPM)....................................................628
8.4.4 BitLocker Boot Process....................................................................630
8.4.5 BitLocker Key Recovery..................................................................631
8.4.6 Full Volume Encryption Driver.......................................................632
8.4.7 BitLocker Management....................................................................633
8.5 Volume Shadow Copy Service...................................................................633
8.5.1 Shadow Copies..................................................................................634
8.5.2 VSS Architecture...............................................................................634
8.5.3 VSS Operation...................................................................................635
8.5.4 Uses in Windows................................................................................637
8.6 Conclusion...................................................................................................642
9. Memory Management.............................................................643
9.1 Introduction to the Memory Manager......................................................643
9.2 Services the Memory Manager Provides..................................................647
9.2.1 Large and Small Pages.....................................................................648
9.2.2 Reserving and Committing Pages...................................................649
9.2.3 Locking Memory...............................................................................650
9.2.4 Allocation Granularity......................................................................651
9.2.5 Shared Memory and Mapped Files.................................................651
9.2.6 Protecting Memory...........................................................................654
9.2.7 No Execute Page Protection.............................................................655
9.2.8 Copy-on-Write...................................................................................659
9.2.9 Address Windowing Extensions.......................................................661
9.3 Kernel-Mode Heaps (System Memory Pools)..........................................662
9.3.1 Pool Sizes............................................................................................663
9.3.2 Monitoring Pool Usage.....................................................................665
9.3.3 Look-Aside Lists................................................................................668
vi
9.4 Heap Manager.............................................................................................669
9.4.1 Types of Heaps...................................................................................670
9.4.2 Heap Manager Structure..................................................................670
9.4.3 Heap Synchronization......................................................................671
9.4.4 The Low Fragmentation Heap.........................................................672
9.4.5 Heap Security Features....................................................................673
9.4.6 Heap Debugging Features................................................................674
9.4.7 Pageheap............................................................................................674
9.5 Virtual address Space layouts....................................................................675
9.5.1 x86 Address Space Layouts..............................................................676
9.5.2 x86 System Address Space Layout..................................................679
9.5.3 x86 Session Space..............................................................................679
9.5.4 System Page Table Entries...............................................................682
9.5.5 64-Bit Address Space Layouts..........................................................684
9.5.6 64-Bit Virtual Addressing Limitations............................................686
9.5.7 Dynamic System Virtual Address Space Management..................689
9.5.8 System Virtual Address Space Quotas............................................692
9.5.9 User Address Space Layout..............................................................693
9.6 Address Translation....................................................................................697
9.6.1 x86 Virtual Address Translation......................................................697
9.6.2 Translation Look-Aside Buffer........................................................703
9.6.3 Physical Address Extension (PAE)..................................................704
9.6.4 IA64 Virtual Address Translation...................................................707
9.6.5 x64 Virtual Address Translation......................................................708
9.7 Page Fault Handling...................................................................................709
9.7.1 Invalid PTEs......................................................................................710
9.7.2 Prototype PTEs.................................................................................711
9.7.3 In-Paging I/O.....................................................................................713
9.7.4 Collided Page Faults.........................................................................714
9.7.5 Clustered Page Faults.......................................................................714
9.7.6 Page Files...........................................................................................715
9.8 Stacks............................................................................................................719
9.9 Virtual address Descriptors.......................................................................721
9.10 NuMa..........................................................................................................724
9.11 Section Objects..........................................................................................725
9.12 Driver Verifier...........................................................................................732
9.13 Page Frame Number Database................................................................736
9.13.1 Page List Dynamics.........................................................................739
9.13.2 Page Priority....................................................................................740
9.13.3 Modified Page Writer.....................................................................743
9.13.4 PFN Data Structures.......................................................................744
9.14 Physical Memory limits............................................................................748
9.15 Working Sets..............................................................................................752
9.15.1 Demand Paging...............................................................................753
vii
9.15.2 Logical Prefetcher...........................................................................753
9.15.3 Placement Policy.............................................................................757
9.15.4 Working Set Management..............................................................757
9.15.5 Balance Set Manager and Swapper...............................................760
9.15.6 System Working Set........................................................................761
9.15.7 Memory Notification Events..........................................................762
9.16 Proactive Memory Management (SuperFetch)......................................764
9.16.1 Components.....................................................................................765
9.16.2 Tracing and Logging.......................................................................766
9.16.3 Scenarios..........................................................................................767
9.16.4 Page Priority and Rebalancing......................................................768
9.16.5 Robust Performance.......................................................................770
9.16.6 ReadyBoost......................................................................................771
9.16.7 ReadyDrive......................................................................................772
9.17. Conclusion................................................................................................774
10. Cache Manager......................................................................775
10.1 Key Features of the Cache Manager.......................................................775
10.2 Cache Virtual Memory Management......................................................779
10.3 Cache Size..................................................................................................780
10.4 Cache Data Structures..............................................................................784
10.4.1 Systemwide Cache Data Structures...............................................784
10.4.2 Per-File Cache Data Structures.....................................................786
10.5 File System interfaces...............................................................................791
10.5.1 Copying to and from the Cache.....................................................792
10.5.2 Caching with the Mapping and Pinning Interfaces.....................793
10.5.3 Caching with the Direct Memory Access Interfaces....................795
10.6 Fast I/O......................................................................................................796
10.7 read ahead and Write behind...................................................................798
10.7.1 Intelligent Read-Ahead...................................................................798
10.7.2 Write-Back Caching and Lazy Writing........................................799
10.7.3 Write Throttling..............................................................................805
10.7.4 System Threads...............................................................................807
10.8 Conclusion.................................................................................................808
11. File Systems............................................................................809
11.1 Windows File System Formats.................................................................810
11.2 File System Driver architecture...............................................................815
11.2.1 Local FSDs.......................................................................................815
11.2.2 Remote FSDs....................................................................................816
11.2.3 File System Operation.....................................................................819
11.2.4 File System Filter Drivers...............................................................824
11.3 Troubleshooting File System Problems...................................................825
11.4 Common log File System..........................................................................827
viii
11.5 NTFS Design goals and Features.............................................................834
11.5.1 High-End File System Requirements............................................834
11.5.2 Advanced Features of NTFS..........................................................835
11.6 NTFS File System Driver.......................................................................847
11.7 NTFS On-Disk Structure.......................................................................850
11.8 NTFS recovery Support............................................................................882
11.8.1 Design...............................................................................................883
11.8.2 Metadata Logging...........................................................................884
11.8.3 Recovery...........................................................................................888
11.8.4 NTFS Bad-Cluster Recovery..........................................................891
11.8.5 Self-Healing......................................................................................894
11.9 Encrypting File System Security..............................................................895
11.9.1 Encrypting a File for the First Time..............................................898
11.9.2 The Decryption Process..................................................................902
11.9.3 Backing Up Encrypted Files...........................................................903
11.10 Conclusion................................................................................................904
12. Networking.............................................................................905
12.1 Windows Networking Architecture.........................................................905
12.1.1 The OSI Reference Model..............................................................905
12.1.2 Windows Networking Components...............................................907
12.2 Networking APIs.......................................................................................909
12.2.1 Windows Sockets.............................................................................910
12.2.2 Winsock Kernel (WSK)..................................................................915
12.2.3 Remote Procedure Call...................................................................917
12.2.4 Web Access APIs.............................................................................921
12.2.5 Named Pipes and Mailslots............................................................923
12.2.6 NetBIOS...........................................................................................928
12.2.7 Other Networking APIs..................................................................930
12.3 Multiple redirector Support.....................................................................934
12.3.1 Multiple Provider Router...............................................................934
12.3.2 Multiple UNC Provider..................................................................937
12.4 Name resolution........................................................................................938
12.5 Location and Topology.............................................................................941
12.6 Protocol Drivers........................................................................................943
12.7 NDiS Drivers..............................................................................................952
12.7.1 Variations on the NDIS Miniport..................................................955
12.7.2 Connection-Oriented NDIS............................................................956
12.7.3 Remote NDIS...................................................................................958
12.7.4 QoS...................................................................................................959
12.8 Binding.......................................................................................................961
12.9 Layered Network Services.......................................................................962
12.10 Conclusion.............................................................................................967
13. Startup and Shutdown..........................................................968
ix
Description:WinDbg installation folder, which documents all the kernel debugger functionality and extensions. In addition, the You run LiveKd just as you would WinDbg or Kd. LiveKd passes any command-line options Windows Graphics Programming: Win32 GDI and DirectDraw, by Feng Yuan (Prentice Hall,.