-
>
決戰(zhàn)行測(cè)5000題(言語(yǔ)理解與表達(dá))
-
>
軟件性能測(cè)試.分析與調(diào)優(yōu)實(shí)踐之路
-
>
第一行代碼Android
-
>
深度學(xué)習(xí)
-
>
Unreal Engine 4藍(lán)圖完全學(xué)習(xí)教程
-
>
深入理解計(jì)算機(jī)系統(tǒng)-原書(shū)第3版
-
>
Word/Excel PPT 2013辦公應(yīng)用從入門到精通-(附贈(zèng)1DVD.含語(yǔ)音視頻教學(xué)+辦公模板+PDF電子書(shū))
Windows內(nèi)核編程 版權(quán)信息
- ISBN:9787111684756
- 條形碼:9787111684756 ; 978-7-111-68475-6
- 裝幀:一般膠版紙
- 冊(cè)數(shù):暫無(wú)
- 重量:暫無(wú)
- 所屬分類:>>
Windows內(nèi)核編程 本書(shū)特色
適讀人群 :適合具有操作系統(tǒng)基礎(chǔ)知識(shí)的中高級(jí)軟件開(kāi)發(fā)人員熟悉Windows內(nèi)核原理,掌握內(nèi)核驅(qū)動(dòng)的開(kāi)發(fā)方法。也適合大學(xué)相關(guān)專業(yè)的學(xué)生閱讀參考。1.本書(shū)內(nèi)容詳實(shí)、深入淺出、案例豐富,是 Windows內(nèi)核開(kāi)發(fā)工程師**的參考資料,也可供相關(guān)專業(yè)的在校學(xué)生和入門者學(xué)習(xí)參考。 2.本書(shū)是近年來(lái)少見(jiàn)的關(guān)于 Windows 內(nèi)核開(kāi)發(fā)的參考書(shū)籍。 3.讀者可以從https://github.com/zodiacon/windowskernelprogrammingbook 下載本書(shū)配套代碼及后續(xù)例程的更新,還可以通過(guò) zodiacon@live.com 聯(lián)系作者,也可以通過(guò) holly.lee@gmail.com 與譯者聯(lián)系。
Windows內(nèi)核編程 內(nèi)容簡(jiǎn)介
在Windows系統(tǒng)中沒(méi)有什么比內(nèi)核更強(qiáng)大了,但是如何編寫(xiě)內(nèi)核驅(qū)動(dòng)程序來(lái)利用這種強(qiáng)大能力呢?這本書(shū)為讀者描述如何編寫(xiě)Windows系統(tǒng)的軟件內(nèi)核驅(qū)動(dòng)程序。這些驅(qū)動(dòng)程序不涉及硬件,而是處理系統(tǒng)本身:進(jìn)程、線程、模塊、注冊(cè)表等等。內(nèi)核代碼可用于監(jiān)視重要事件,防止在需要時(shí)發(fā)生某些事件。讀者可以通過(guò)編寫(xiě)各種過(guò)濾器來(lái)攔截驅(qū)動(dòng)程序中感興趣的調(diào)用。
Windows內(nèi)核編程 目錄
譯者序
第1章 Windows內(nèi)部概覽1
1.1 進(jìn)程1
1.2 虛擬內(nèi)存2
1.2.1 頁(yè)狀態(tài)4
1.2.2 系統(tǒng)內(nèi)存4
1.3 線程5
1.4 系統(tǒng)服務(wù)7
1.5 系統(tǒng)總體架構(gòu)8
1.6 句柄和對(duì)象10
1.6.1 對(duì)象名稱11
1.6.2 訪問(wèn)已經(jīng)存在的對(duì)象13
第2章 開(kāi)始內(nèi)核開(kāi)發(fā)15
2.1 安裝工具15
2.2 創(chuàng)建一個(gè)驅(qū)動(dòng)程序項(xiàng)目16
2.3 DriverEntry和Unload例程17
2.4 部署驅(qū)動(dòng)程序19
2.5 簡(jiǎn)單的跟蹤22
2.6 練習(xí)24
2.7 總結(jié)24
第3章 內(nèi)核編程基礎(chǔ)25
3.1 內(nèi)核編程的一般準(zhǔn)則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 測(cè)試和調(diào)試28
3.2 調(diào)試構(gòu)建與發(fā)布構(gòu)建28
3.3 內(nèi)核API29
3.4 函數(shù)和錯(cuò)誤代碼30
3.5 字符串30
3.6 動(dòng)態(tài)內(nèi)存分配31
3.7 鏈表33
3.8 驅(qū)動(dòng)程序?qū)ο?5
3.9 設(shè)備對(duì)象36
3.10 總結(jié)38
第4章 驅(qū)動(dòng)程序:從頭到尾39
4.1 簡(jiǎn)介39
4.2 驅(qū)動(dòng)程序初始化40
4.2.1 將信息傳遞給驅(qū)動(dòng)程序41
4.2.2 客戶程序/驅(qū)動(dòng)程序之間的通信協(xié)議42
4.2.3 創(chuàng)建設(shè)備對(duì)象44
4.3 客戶程序代碼46
4.4 Create和Close分發(fā)例程47
4.5 DeviceIoControl分發(fā)例程48
4.6 安裝與測(cè)試52
4.7 總結(jié)54
第5章 調(diào)試55
5.1 Debugging Tools for Windows 55
5.2 WinDbg簡(jiǎn)介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 配置目標(biāo)機(jī)78
5.4.2 配置宿主機(jī)79
5.5 內(nèi)核驅(qū)動(dòng)程序調(diào)試教程81
5.6 總結(jié)83
第6章 內(nèi)核機(jī)制84
6.1 中斷請(qǐng)求級(jí)別84
6.1.1 提升和降低IRQL86
6.1.2 線程優(yōu)先級(jí)與IRQL87
6.2 延遲過(guò)程調(diào)用88
6.3 異步過(guò)程調(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)儲(chǔ)信息100
6.5.2 分析轉(zhuǎn)儲(chǔ)文件103
6.5.3 系統(tǒng)掛起105
6.6 線程同步107
6.6.1 互鎖操作107
6.6.2 分發(fā)器對(duì)象108
6.6.3 互斥量110
6.6.4 快速互斥量113
6.6.5 信號(hào)量114
6.6.6 事件114
6.6.7 執(zhí)行體資源115
6.7 高IRQL同步116
6.8 工作項(xiàng)目119
6.9 總結(jié)120
第7章 I/O請(qǐng)求包121
7.1 IRP簡(jiǎn)介121
7.2 設(shè)備節(jié)點(diǎn)122
7.3 IRP和I/O棧位置126
7.4 分發(fā)例程130
7.5 訪問(wèn)用戶緩沖區(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ū)動(dòng)程序139
7.6.1 使用預(yù)編譯頭140
7.6.2 DriverEntry例程142
7.6.3 讀分發(fā)例程143
7.6.4 寫(xiě)分發(fā)例程144
7.6.5 測(cè)試應(yīng)用144
7.7 總結(jié)145
第8章 進(jìn)程和線程通知146
8.1 進(jìn)程通知146
8.2 實(shí)現(xiàn)進(jìn)程通知149
8.2.1 DriverEntry例程151
8.2.2 處理進(jìn)程退出通知152
8.2.3 處理進(jìn)程創(chuàng)建通知154
8.3 將數(shù)據(jù)提供給用戶模式156
8.4 線程通知160
8.5 映像載入通知163
8.6 練習(xí)164
8.7 總結(jié)165
第9章 對(duì)象和注冊(cè)表通知166
9.1 對(duì)象通知166
9.1.1 操作前回調(diào)168
9.1.2 操作后回調(diào)170
9.2 進(jìn)程保護(hù)者驅(qū)動(dòng)程序171
9.2.1 對(duì)象通知注冊(cè)172
9.2.2 管理受保護(hù)的進(jìn)程172
9.2.3 操作前回調(diào)176
9.2.4 客戶應(yīng)用177
9.3 注冊(cè)表通知180
9.3.1 處理操作前通知181
9.3.2 處理操作后回調(diào)181
9.3.3 性能考慮182
9.4 實(shí)現(xiàn)注冊(cè)表通知182
9.4.1 處理注冊(cè)表回調(diào)183
9.4.2 修改后的客戶程序代碼185
9.5 練習(xí)187
9.6 總結(jié)187
第10章 文件系統(tǒng)小過(guò)濾驅(qū)動(dòng)188
10.1 簡(jiǎn)介188
10.2 裝入與卸載189
10.3 初始化191
10.3.1 操作回調(diào)注冊(cè)194
10.3.2 高度198
10.4 安裝200
10.4.1 INF文件200
10.4.2 安裝驅(qū)動(dòng)程序206
10.5 處理I/O操作206
10.5.1 操作前回調(diào)207
10.5.2 操作后回調(diào)209
10.6 刪除保護(hù)驅(qū)動(dòng)程序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ū)動(dòng)程序通用化221
10.6.5 測(cè)試修改后的驅(qū)動(dòng)程序225
10.7 文件名227
10.7.1 文件名的各個(gè)部分228
10.7.2 RAII FLT_FILE_NAME_INFORMATION包裝器231
10.8 另一個(gè)刪除保護(hù)驅(qū)動(dòng)程序232
10.8.1 處理創(chuàng)建前回調(diào)和設(shè)置信息前回調(diào)239
10.8.2 測(cè)試驅(qū)動(dòng)程序241
10.9 上下文241
10.10 初始化I/O請(qǐng)求244
10.11 文件備份驅(qū)動(dòng)程序246
10.11.1 創(chuàng)建后回調(diào)248
10.11.2 寫(xiě)前回調(diào)252
10.11.3 清理后回調(diào)257
10.11.4 測(cè)試驅(qū)動(dòng)程序258
10.11.5 恢復(fù)備份258
10.12 用戶模式通信260
10.12.1 創(chuàng)建通信端口261
10.12.2 用戶模式連接262
10.12.3 發(fā)送和接收消息263
10.12.4 增強(qiáng)文件備份驅(qū)動(dòng)程序264
10.12.5 用戶模式客戶程序266
10.13 調(diào)試268
10.14 練習(xí)271
10.15 總結(jié)271
第11章 其他主題273
11.1 驅(qū)動(dòng)程序簽名273
11.2 驅(qū)動(dòng)程序驗(yàn)證器276
11.3 使用原生API282
11.4 過(guò)濾驅(qū)動(dòng)程序283
11.4.1 過(guò)濾驅(qū)動(dòng)程序的實(shí)現(xiàn)285
11.4.2 附加過(guò)濾器286
11.4.3 在任意時(shí)刻附加過(guò)濾器288
11.4.4 過(guò)濾器的清理289
11.4.5 基于硬件的過(guò)濾驅(qū)動(dòng)程序的更多內(nèi)容290
11.5 設(shè)備監(jiān)視器292
11.5.1 增加過(guò)濾設(shè)備293
11.5.2 移除過(guò)濾設(shè)備296
11.5.3 初始化和卸載297
11.5.4 處理請(qǐng)求298
11.5.5 測(cè)試驅(qū)動(dòng)程序301
11.5.6 請(qǐng)求的結(jié)果305
11.6 驅(qū)動(dòng)程序掛鉤307
11.7 內(nèi)核庫(kù)309
11.8 總結(jié)310
Windows內(nèi)核編程 作者簡(jiǎn)介
帕維爾·約西福維奇(Pavel Yosifovich)是著名的軟件開(kāi)發(fā)者、培訓(xùn)師、作者和演講者。他熱愛(ài)關(guān)于軟件的一切,并且依然懷念他從前的Commodore 64電腦?梢酝ㄟ^(guò)zodiacon@live.com聯(lián)系他。 [譯者簡(jiǎn)介]李亮 資深程序員,從事軟件開(kāi)發(fā)三十余年。從嵌入式系統(tǒng)到企業(yè)應(yīng)用開(kāi)發(fā),從操作系統(tǒng)底層到 Web 前端技術(shù)均有涉足。喜歡鉆研技術(shù),對(duì)編寫(xiě)代碼孜孜以求,也時(shí)常閱讀和翻譯相關(guān)技術(shù)書(shū)籍,追尋生活與工作之間的平衡。
- >
姑媽的寶刀
- >
自卑與超越
- >
大紅狗在馬戲團(tuán)-大紅狗克里弗-助人
- >
李白與唐代文化
- >
隨園食單
- >
月亮虎
- >
【精裝繪本】畫(huà)給孩子的中國(guó)神話
- >
我與地壇