注冊 | 登錄讀書好,好讀書,讀好書!
讀書網-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網絡軟件與程序設計Windows內核編程

Windows內核編程

Windows內核編程

定 價:¥119.00

作 者: [美] 帕維爾·約西福維奇(Pavel Yosifovich) 著,李亮 譯
出版社: 機械工業(yè)出版社
叢編項: 華章程序員書庫
標 簽: 暫缺

購買這本書可以去


ISBN: 9787111684756 出版時間: 2021-07-01 包裝: 平裝
開本: 16開 頁數: 312 字數:  

內容簡介

  在Windows系統(tǒng)中沒有什么比內核更強大了,但是如何編寫內核驅動程序來利用這種強大能力呢?這本書為讀者描述如何編寫Windows系統(tǒng)的軟件內核驅動程序。這些驅動程序不涉及硬件,而是處理系統(tǒng)本身:進程、線程、模塊、注冊表等等。內核代碼可用于監(jiān)視重要事件,防止在需要時發(fā)生某些事件。讀者可以通過編寫各種過濾器來攔截驅動程序中感興趣的調用。

作者簡介

  帕維爾·約西福維奇(Pavel Yosifovich)是著名的軟件開發(fā)者、培訓師、作者和演講者。他熱愛關于軟件的一切,并且依然懷念他從前的Commodore 64電腦。可以通過zodiacon@live.com聯(lián)系他。[譯者簡介]李亮 資深程序員,從事軟件開發(fā)三十余年。從嵌入式系統(tǒng)到企業(yè)應用開發(fā),從操作系統(tǒng)底層到 Web 前端技術均有涉足。喜歡鉆研技術,對編寫代碼孜孜以求,也時常閱讀和翻譯相關技術書籍,追尋生活與工作之間的平衡。

圖書目錄

譯者序
第1章 Windows內部概覽1
1.1 進程1
1.2 虛擬內存2
1.2.1 頁狀態(tài)4
1.2.2 系統(tǒng)內存4
1.3 線程5
1.4 系統(tǒng)服務7
1.5 系統(tǒng)總體架構8
1.6 句柄和對象10
1.6.1 對象名稱11
1.6.2 訪問已經存在的對象13
第2章 開始內核開發(fā)15
2.1 安裝工具15
2.2 創(chuàng)建一個驅動程序項目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 調試構建與發(fā)布構建28
3.3 內核API29
3.4 函數和錯誤代碼30
3.5 字符串30
3.6 動態(tài)內存分配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 客戶程序/驅動程序之間的通信協(xié)議42
4.2.3 創(chuàng)建設備對象44
4.3 客戶程序代碼46
4.4 Create和Close分發(fā)例程47
4.5 DeviceIoControl分發(fā)例程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 線程優(yōu)先級與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 系統(tǒng)崩潰98
6.5.1 崩潰轉儲信息100
6.5.2 分析轉儲文件103
6.5.3 系統(tǒng)掛起105
6.6 線程同步107
6.6.1 互鎖操作107
6.6.2 分發(fā)器對象108
6.6.3 互斥量110
6.6.4 快速互斥量113
6.6.5 信號量114
6.6.6 事件114
6.6.7 執(zhí)行體資源115
6.7 高IRQL同步116
6.8 工作項目119
6.9 總結120
第7章 I/O請求包121
7.1 IRP簡介121
7.2 設備節(jié)點122
7.3 IRP和I/O棧位置126
7.4 分發(fā)例程130
7.5 訪問用戶緩沖區(qū)132
7.5.1 緩沖I/O133
7.5.2 直接I/O135
7.5.3 IRP_MJ_DEVICE_CONTROL的用戶緩沖區(qū)138
7.6 匯總:Zero驅動程序139
7.6.1 使用預編譯頭140
7.6.2 DriverEntry例程142
7.6.3 讀分發(fā)例程143
7.6.4 寫分發(fā)例程144
7.6.5 測試應用144
7.7 總結145
第8章 進程和線程通知146
8.1 進程通知146
8.2 實現(xiàn)進程通知149
8.2.1 DriverEntry例程151
8.2.2 處理進程退出通知152
8.2.3 處理進程創(chuàng)建通知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 實現(xiàn)注冊表通知182
9.4.1 處理注冊表回調183
9.4.2 修改后的客戶程序代碼185
9.5 練習187
9.6 總結187
第10章 文件系統(tǒng)小過濾驅動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 處理創(chuàng)建前回調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 處理創(chuàng)建前回調和設置信息前回調239
10.8.2 測試驅動程序241
10.9 上下文241
10.10 初始化I/O請求244
10.11 文件備份驅動程序246
10.11.1 創(chuàng)建后回調248
10.11.2 寫前回調252
10.11.3 清理后回調257
10.11.4 測試驅動程序258
10.11.5 恢復備份258
10.12 用戶模式通信260
10.12.1 創(chuàng)建通信端口261
10.12.2 用戶模式連接262
10.12.3 發(fā)送和接收消息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 過濾驅動程序的實現(xiàn)285
11.4.2 附加過濾器286
11.4.3 在任意時刻附加過濾器288
11.4.4 過濾器的清理289
11.4.5 基于硬件的過濾驅動程序的更多內容290
11.5 設備監(jiān)視器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

本目錄推薦

掃描二維碼
Copyright ? 讀書網 www.dappsexplained.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號