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

Windows內(nèi)核編程

Windows內(nèi)核編程

定 價:¥119.00

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

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

內(nèi)容簡介

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

作者簡介

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

圖書目錄

譯者序
第1章 Windows內(nèi)部概覽1
1.1 進程1
1.2 虛擬內(nèi)存2
1.2.1 頁狀態(tài)4
1.2.2 系統(tǒng)內(nèi)存4
1.3 線程5
1.4 系統(tǒng)服務7
1.5 系統(tǒng)總體架構(gòu)8
1.6 句柄和對象10
1.6.1 對象名稱11
1.6.2 訪問已經(jīng)存在的對象13
第2章 開始內(nèi)核開發(fā)15
2.1 安裝工具15
2.2 創(chuàng)建一個驅(qū)動程序項目16
2.3 DriverEntry和Unload例程17
2.4 部署驅(qū)動程序19
2.5 簡單的跟蹤22
2.6 練習24
2.7 總結(jié)24
第3章 內(nèi)核編程基礎(chǔ)25
3.1 內(nèi)核編程的一般準則25
3.1.1 未處理的異常26
3.1.2 終止26
3.1.3 函數(shù)返回值26
3.1.4 IRQL27
3.1.5 C 用法27
3.1.6 測試和調(diào)試28
3.2 調(diào)試構(gòu)建與發(fā)布構(gòu)建28
3.3 內(nèi)核API29
3.4 函數(shù)和錯誤代碼30
3.5 字符串30
3.6 動態(tài)內(nèi)存分配31
3.7 鏈表33
3.8 驅(qū)動程序?qū)ο?5
3.9 設(shè)備對象36
3.10 總結(jié)38
第4章 驅(qū)動程序:從頭到尾39
4.1 簡介39
4.2 驅(qū)動程序初始化40
4.2.1 將信息傳遞給驅(qū)動程序41
4.2.2 客戶程序/驅(qū)動程序之間的通信協(xié)議42
4.2.3 創(chuàng)建設(shè)備對象44
4.3 客戶程序代碼46
4.4 Create和Close分發(fā)例程47
4.5 DeviceIoControl分發(fā)例程48
4.6 安裝與測試52
4.7 總結(jié)54
第5章 調(diào)試55
5.1 Debugging Tools for Windows 55
5.2 WinDbg簡介56
5.3 內(nèi)核調(diào)試70
5.3.1 本地內(nèi)核調(diào)試70
5.3.2 本地內(nèi)核調(diào)試教程71
5.4 完整內(nèi)核調(diào)試77
5.4.1 配置目標機78
5.4.2 配置宿主機79
5.5 內(nèi)核驅(qū)動程序調(diào)試教程81
5.6 總結(jié)83
第6章 內(nèi)核機制84
6.1 中斷請求級別84
6.1.1 提升和降低IRQL86
6.1.2 線程優(yōu)先級與IRQL87
6.2 延遲過程調(diào)用88
6.3 異步過程調(diào)用90
6.4 結(jié)構(gòu)化異常處理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 崩潰轉(zhuǎn)儲信息100
6.5.2 分析轉(zhuǎn)儲文件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 總結(jié)120
第7章 I/O請求包121
7.1 IRP簡介121
7.2 設(shè)備節(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驅(qū)動程序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 總結(jié)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 將數(shù)據(jù)提供給用戶模式156
8.4 線程通知160
8.5 映像載入通知163
8.6 練習164
8.7 總結(jié)165
第9章 對象和注冊表通知166
9.1 對象通知166
9.1.1 操作前回調(diào)168
9.1.2 操作后回調(diào)170
9.2 進程保護者驅(qū)動程序171
9.2.1 對象通知注冊172
9.2.2 管理受保護的進程172
9.2.3 操作前回調(diào)176
9.2.4 客戶應用177
9.3 注冊表通知180
9.3.1 處理操作前通知181
9.3.2 處理操作后回調(diào)181
9.3.3 性能考慮182
9.4 實現(xiàn)注冊表通知182
9.4.1 處理注冊表回調(diào)183
9.4.2 修改后的客戶程序代碼185
9.5 練習187
9.6 總結(jié)187
第10章 文件系統(tǒng)小過濾驅(qū)動188
10.1 簡介188
10.2 裝入與卸載189
10.3 初始化191
10.3.1 操作回調(diào)注冊194
10.3.2 高度198
10.4 安裝200
10.4.1 INF文件200
10.4.2 安裝驅(qū)動程序206
10.5 處理I/O操作206
10.5.1 操作前回調(diào)207
10.5.2 操作后回調(diào)209
10.6 刪除保護驅(qū)動程序210
10.6.1 處理創(chuàng)建前回調(diào)212
10.6.2 處理設(shè)置信息前回調(diào)216
10.6.3 重構(gòu)218
10.6.4 將驅(qū)動程序通用化221
10.6.5 測試修改后的驅(qū)動程序225
10.7 文件名227
10.7.1 文件名的各個部分228
10.7.2 RAII FLT_FILE_NAME_INFORMATION包裝器231
10.8 另一個刪除保護驅(qū)動程序232
10.8.1 處理創(chuàng)建前回調(diào)和設(shè)置信息前回調(diào)239
10.8.2 測試驅(qū)動程序241
10.9 上下文241
10.10 初始化I/O請求244
10.11 文件備份驅(qū)動程序246
10.11.1 創(chuàng)建后回調(diào)248
10.11.2 寫前回調(diào)252
10.11.3 清理后回調(diào)257
10.11.4 測試驅(qū)動程序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 增強文件備份驅(qū)動程序264
10.12.5 用戶模式客戶程序266
10.13 調(diào)試268
10.14 練習271
10.15 總結(jié)271
第11章 其他主題273
11.1 驅(qū)動程序簽名273
11.2 驅(qū)動程序驗證器276
11.3 使用原生API282
11.4 過濾驅(qū)動程序283
11.4.1 過濾驅(qū)動程序的實現(xiàn)285
11.4.2 附加過濾器286
11.4.3 在任意時刻附加過濾器288
11.4.4 過濾器的清理289
11.4.5 基于硬件的過濾驅(qū)動程序的更多內(nèi)容290
11.5 設(shè)備監(jiān)視器292
11.5.1 增加過濾設(shè)備293
11.5.2 移除過濾設(shè)備296
11.5.3 初始化和卸載297
11.5.4 處理請求298
11.5.5 測試驅(qū)動程序301
11.5.6 請求的結(jié)果305
11.6 驅(qū)動程序掛鉤307
11.7 內(nèi)核庫309
11.8 總結(jié)310

本目錄推薦

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