windows核心編程(2021年機械工業出版社出版的圖書)

windows核心編程(2021年機械工業出版社出版的圖書)

本詞條是多義詞,共3個義項
更多義項 ▼ 收起列表 ▲

《windows核心編程》是2021年機械工業出版社出版的圖書,作者是帕維爾·約西福維奇(Pavel Yosifovich)。本書內容詳實、深入淺出、案例豐富,是 Windows核心開發工程師的參考資料,也可供相關專業的在校學生和入門者學習參考。本書是近年來少見的關於 Windows 核心開發的參考書籍。

基本介紹

  • 書名:windows核心編程
  • 作者:帕維爾·約西福維奇(Pavel Yosifovich)
  • 出版社:機械工業出版社 
  • ISBN:9787111684756
內容簡介,圖書目錄,作者簡介,

內容簡介

在Windows系統中沒有什麼比核心更強大了,但是如何編寫核心驅動程式來利用這種強大能力呢?這本書為讀者描述如何編寫Windows系統的軟體核心驅動程式。這些驅動程式不涉及硬體,而是處理系統本身:進程、執行緒、模組、註冊表等等。核心代碼可用於監視重要事件,防止在需要時發生某些事件。讀者可以通過編寫各種過濾器來攔截驅動程式中感興趣的調用。

圖書目錄

譯者序
第1章 Windows內部概覽1
1.1 進程1
1.2 虛擬記憶體2
1.2.1 頁狀態4
1.2.2 系統記憶體4
1.3 執行緒5
1.4 系統服務7
1.5 系統總體架構8
1.6 句柄和對象10
1.6.1 對象名稱11
1.6.2 訪問已經存在的對象13
第2章 開始核心開發15
2.1 安裝工具15
2.2 創建一個驅動程式項目16
2.3 DriverEntry和Unload例程17
2.4 部署驅動程式19
2.5 簡單的跟蹤22
2.6 練習24
2.7 總結24
第3章 核心編程基礎25
3.1 核心編程的一般準則25
3.1.1 未處理的異常26
3.1.2 終止26
3.1.3 函式返回值26
3.1.4 IRQL27
3.1.5 C 用法27
3.1.6 測試和調試28
3.2 調試構建與發布構建28
3.3 核心API29
3.4 函式和錯誤代碼30
3.5 字元串30
3.6 動態記憶體分配31
3.7 鍊表33
3.8 驅動程式對象35
3.9 設備對象36
3.10 總結38
第4章 驅動程式:從頭到尾39
4.1 簡介39
4.2 驅動程式初始化40
4.2.1 將信息傳遞給驅動程式41
4.2.2 客戶程式/驅動程式之間的通信協定42
4.2.3 創建設備對象44
4.3 客戶程式代碼46
4.4 Create和Close分發例程47
4.5 DeviceIoControl分發例程48
4.6 安裝與測試52
4.7 總結54
第5章 調試55
5.1 Debugging Tools for Windows 55
5.2 WinDbg簡介56
5.3 核心調試70
5.3.1 本地核心調試70
5.3.2 本地核心調試教程71
5.4 完整核心調試77
5.4.1 配置目標機78
5.4.2 配置宿主機79
5.5 核心驅動程式調試教程81
5.6 總結83
第6章 核心機制84
6.1 中斷請求級別84
6.1.1 提升和降低IRQL86
6.1.2 執行緒優先權與IRQL87
6.2 延遲過程調用88
6.3 異步過程調用90
6.4 結構化異常處理91
6.4.1 使用__try/__except93
6.4.2 使用__try/__finally95
6.4.3 使用C RAII代替__try/__finally96
6.5 系統崩潰98
6.5.1 崩潰轉儲信息100
6.5.2 分析轉儲檔案103
6.5.3 系統掛起105
6.6 執行緒同步107
6.6.1 互鎖操作107
6.6.2 分發器對象108
6.6.3 互斥量110
6.6.4 快速互斥量113
6.6.5 信號量114
6.6.6 事件114
6.6.7 執行體資源115
6.7 高IRQL同步116
6.8 工作項目119
6.9 總結120
第7章 I/O請求包121
7.1 IRP簡介121
7.2 設備節點122
7.3 IRP和I/O棧位置126
7.4 分發例程130
7.5 訪問用戶緩衝區132
7.5.1 緩衝I/O133
7.5.2 直接I/O135
7.5.3 IRP_MJ_DEVICE_CONTROL的用戶緩衝區138
7.6 匯總:Zero驅動程式139
7.6.1 使用預編譯頭140
7.6.2 DriverEntry例程142
7.6.3 讀分發例程143
7.6.4 寫分發例程144
7.6.5 測試套用144
7.7 總結145
第8章 進程和執行緒通知146
8.1 進程通知146
8.2 實現進程通知149
8.2.1 DriverEntry例程151
8.2.2 處理進程退出通知152
8.2.3 處理進程創建通知154
8.3 將數據提供給用戶模式156
8.4 執行緒通知160
8.5 映像載入通知163
8.6 練習164
8.7 總結165
第9章 對象和註冊表通知166
9.1 對象通知166
9.1.1 操作前回調168
9.1.2 操作後回調170
9.2 進程保護者驅動程式171
9.2.1 對象通知註冊172
9.2.2 管理受保護的進程172
9.2.3 操作前回調176
9.2.4 客戶套用177
9.3 註冊表通知180
9.3.1 處理操作前通知181
9.3.2 處理操作後回調181
9.3.3 性能考慮182
9.4 實現註冊表通知182
9.4.1 處理註冊表回調183
9.4.2 修改後的客戶程式代碼185
9.5 練習187
9.6 總結187
第10章 檔案系統小過濾驅動188
10.1 簡介188
10.2 裝入與卸載189
10.3 初始化191
10.3.1 操作回調註冊194
10.3.2 高度198
10.4 安裝200
10.4.1 INF檔案200
10.4.2 安裝驅動程式206
10.5 處理I/O操作206
10.5.1 操作前回調207
10.5.2 操作後回調209
10.6 刪除保護驅動程式210
10.6.1 處理創建前回調212
10.6.2 處理設定信息前回調216
10.6.3 重構218
10.6.4 將驅動程式通用化221
10.6.5 測試修改後的驅動程式225
10.7 檔案名稱227
10.7.1 檔案名稱的各個部分228
10.7.2 RAII FLT_FILE_NAME_INFORMATION包裝器231
10.8 另一個刪除保護驅動程式232
10.8.1 處理創建前回調和設定信息前回調239
10.8.2 測試驅動程式241
10.9 上下文241
10.10 初始化I/O請求244
10.11 檔案備份驅動程式246
10.11.1 創建後回調248
10.11.2 寫前回調252
10.11.3 清理後回調257
10.11.4 測試驅動程式258
10.11.5 恢復備份258
10.12 用戶模式通信260
10.12.1 創建通信連線埠261
10.12.2 用戶模式連線262
10.12.3 傳送和接收訊息263
10.12.4 增強檔案備份驅動程式264
10.12.5 用戶模式客戶程式266
10.13 調試268
10.14 練習271
10.15 總結271
第11章 其他主題273
11.1 驅動程式簽名273
11.2 驅動程式驗證器276
11.3 使用原生API282
11.4 過濾驅動程式283
11.4.1 過濾驅動程式的實現285
11.4.2 附加過濾器286
11.4.3 在任意時刻附加過濾器288
11.4.4 過濾器的清理289
11.4.5 基於硬體的過濾驅動程式的更多內容290
11.5 設備監視器292
11.5.1 增加過濾設備293
11.5.2 移除過濾設備296
11.5.3 初始化和卸載297
11.5.4 處理請求298
11.5.5 測試驅動程式301
11.5.6 請求的結果305
11.6 驅動程式掛鈎307
11.7 核心庫309
11.8 總結310

作者簡介

帕維爾·約西福維奇(Pavel Yosifovich)是著名的軟體開發者、培訓師、作者和演講者。

相關詞條

熱門詞條

聯絡我們