上 冊
第1章 概述 1
1.1 Windows操作係統發展簡史 1
1.2 用戶空間和係統空間 3
1.3 Windows內核 4
1.4 開源項目ReactOS及其代碼 9
1.5 Windows內核函數的命名 10
第2章 係統調用 12
2.1 內核與係統調用 12
2.2 係統調用的內核入口KiSystemService() 22
2.3 係統調用的函數跳轉 29
2.4 係統調用的返迴 32
2.5 快速係統調用 35
2.6 從內核中發起係統調用 42
第3章 內存管理 44
3.1 內存區間的動態分配 47
3.1.1 內核對用戶空間的管理 48
3.1.2 內核對於物理頁麵的管理 60
3.1.3 虛存頁麵的映射 67
3.1.4 Hyperspace的臨時映射 78
3.1.5 係統空間的映射 86
3.1.6 係統調用NtAllocateVirtualMemory() 90
3.2 頁麵異常 97
3.3 頁麵的換齣 107
3.4 共享映射區(Section) 115
3.5 係統空間的緩衝區管理 133
第4章 對象管理 136
4.1 對象與對象目錄 136
4.2 對象類型 148
4.3 句柄和句柄錶 162
4.4 對象的創建 169
4.5 幾個常用的內核函數 179
4.5.1 ObReferenceObjectByHandle() 179
4.5.2 ObReferenceObjectByPointer() 187
4.5.3 ObpLookupEntryDirectory() 188
4.5.4 ObpLookupObjectName() 192
4.5.5 ObOpenObjectByName() 209
4.5.6 ObReferenceObjectByName() 213
4.5.7 ObDereferenceObject() 214
4.6 對象的訪問控製 218
4.7 句柄的遺傳和繼承 218
4.8 係統調用NtDuplicateObject() 223
4.9 係統調用NtClose() 233
第5章 進程與綫程 241
5.1 概述 241
5.2 Windows進程的用戶空間 253
5.3 係統調用NtCreateProcess() 273
5.4 係統調用NtCreateThread() 284
5.5 Windows的可執行程序映像 300
5.6 Windows的進程創建和映像裝入 305
5.7 Windows DLL的裝入和連接 329
5.8 Windows的APC機製 358
5.9 Windows綫程的調度和切換 381
5.9.1 x86係統結構與綫程切換 382
5.9.2 幾個重要的數據結構 385
5.9.3 綫程的切換 388
5.9.4 綫程的調度 395
5.10 綫程和進程的優先級 409
5.11 綫程本地存儲TLS 421
5.12 進程掛靠 434
5.13 Windows的跨進程操作 442
5.14 Windows綫程間的相互作用 450
第6章 進程間通信 467
6.1 概述 467
6.2 共享內存區(Section) 469
6.3 綫程的等待/喚醒機製 470
6.4 信號量(Semaphore) 499
6.5 互斥門(Mutant) 505
6.6 事件(Event) 512
6.7 命名管道(Named Pipe)和信插(Mailslot) 516
6.8 本地過程調用(LPC) 521
6.9 視窗報文(Message) 555
第7章 視窗報文 556
7.1 視窗綫程與Win32k擴充係統調用 556
7.2 視窗報文的接收 566
7.3 Win32k的用戶空間迴調機製 590
7.4 用戶空間的外掛函數 602
7.5 視窗報文的發送 615
7.6 鍵盤輸入綫程 628
7.7 鼠標器輸入綫程 642
7.8 默認的報文處理 662
第8章 結構化異常處理 665
8.1 結構化異常處理的程序框架 666
8.2 係統空間的結構化異常處理 683
8.3 用戶空間的結構化異常處理 710
8.4 軟異常 720
下 冊
第9章 設備驅動 729
9.1 Windows的設備驅動框架 729
9.2 一個“老式”驅動模塊的實例 745
9.3 DPC函數及其執行 769
9.4 內核勞務綫程 778
9.5 一組PnP設備驅動模塊的實例 783
9.6 中斷處理 817
9.7 一個過濾設備驅動模塊的示例 828
9.8 設備驅動模塊的裝載 830
9.9 磁盤的設備驅動堆疊 858
9.9.1 類驅動disk.sys 860
9.10 磁盤的Miniport驅動模塊 887
9.11 命名管道與Mailslot 896
9.12 MDL 918
9.13 同步I/O與異步I/O 932
9.14 IRP請求的完成與返迴 946
第10章 網絡操作 957
10.1 概述 957
10.2 NDIS及其實現 959
10.3 Windows的網絡驅動堆疊 974
10.3.1 NIC驅動 975
10.3.2 LAN驅動模塊 997
10.3.3 TCP/IP驅動模塊 1014
10.3.4 AFD驅動與Winsock 1035
10.4 Socket的無連接通信 1062
10.5 Socket的有連接通信 1089
10.6 Winsock的實現 1093
第11章 文件操作 1099
11.1 Win32 API函數CreateFileW() 1099
11.2 NT路徑名 1109
11.3 文件路徑名的解析 1119
11.4 FAT32文件係統 1144
11.5 文件係統驅動的裝載和初始化 1169
11.6 文件捲的安裝 1175
11.7 文件的創建 1199
11.8 緩存管理 1214
11.9 文件的讀寫 1237
11.10 NTFS文件係統簡介 1252
第12章 操作係統的安全性 1278
12.1 概述 1278
12.2 證章 1289
12.3 安全描述塊和ACL 1305
12.4 訪問權限檢查 1322
第13章 注冊錶 1351
13.1 注冊錶操作 1351
13.2 注冊錶的初始化和裝載 1369
13.3 庫函數RtlQueryRegistryValues() 1376
第14章 係統管理進程與服務進程 1394
14.1 係統管理進程Smss 1394
14.2 Windows子係統的服務進程Csrss 1408
14.3 服務管理進程Services 1424
14.4 服務進程Svchost 1449
跋 1464
參考文獻 1466
· · · · · · (
收起)