[www.ed2k.online]下載基地為您提供軟件、遊戲、圖書、教育等各種資源的ED2K電驢共享下載和MAGNET磁力鏈接下載。
設為首頁
加入收藏
首頁 圖書資源 軟件資源 游戲資源 教育資源 其他資源
 電驢下載基地 >> 图书资源 >> 計算機與網絡 >> 《竹林蹊徑:深入淺出Windows驅動開發》掃描版[PDF]
《竹林蹊徑:深入淺出Windows驅動開發》掃描版[PDF]
下載分級 图书资源
資源類別 計算機與網絡
發布時間 2017/7/11
大       小 -
《竹林蹊徑:深入淺出Windows驅動開發》掃描版[PDF] 簡介: 中文名 : 竹林蹊徑:深入淺出Windows驅動開發 作者 : 張佩 馬勇 董鑒源 圖書分類 : 硬件 資源格式 : PDF 版本 : 掃描版 出版社 : 電子工業出版社 書號 : 9787121125553 發行時間 : 2011年3月 地區 : 大陸 語言 : 簡體中文 簡介 : 已經補全,歡迎各位朋友提出寶貴意見。 內容介紹:   本書是作者根據多年
電驢資源下載/磁力鏈接資源下載:
全選
"《竹林蹊徑:深入淺出Windows驅動開發》掃描版[PDF]"介紹
中文名: 竹林蹊徑:深入淺出Windows驅動開發
作者: 張佩
馬勇
董鑒源
圖書分類: 硬件
資源格式: PDF
版本: 掃描版
出版社: 電子工業出版社
書號: 9787121125553
發行時間: 2011年3月
地區: 大陸
語言: 簡體中文
簡介:

已經補全,歡迎各位朋友提出寶貴意見。
內容介紹:
  本書是作者根據多年的工作學習經驗,總結的第一手驅動開發資料。本書更多的是經驗之談,一些實踐中的小發現小意外,頗為書中內容添彩。
  本書的特色之一,是對wdf框架做了較多的切入。本書第一個主要內容是(第3~7章)圍繞wdf而展開討論,側重點各有不同。第3章以框架為討論的中心;第4、5兩章以wdf框架開發usb和1394驅動;第6章講述內核c++編程,也以wdf框架為藍本;第7章講述wdf驅動的測試和調試。
  第二個主要內容是關於音視頻驅動開發(第10~11章)。音視頻驅動包括avstream架構,本書做了較詳細的闡述。第10章講述使用avstream小端口架構,第11章講述asio音頻驅動開發。
  第三個主要內容是關於設備驅動安裝(第12~14章)。第12章講系統安裝模塊,從總體角度闡述系統和設備驅動如何配合完好地進行工作;第13章講述inf安裝文件的細節,包括各個域的作用,以及諸多安裝指令的使用。第14章講如何編寫驅動安裝軟件。
  剩余的一些章節,分別是關於驅動入門(第1、2章)、windbg調試命令(第8章)、內核同步(第9章)等內容。
  本書適合一般入門級內核程序員,對wdf有興趣,准備開發usb或1394設備驅動者,本書尤其有用。本書對於入行較久,經驗豐富的程序員,也具有一定的參考價值。
內容截圖:

目錄:
向內核世界說一聲:hello,我來了。如果你是一個初學者,並對這個世界充滿好奇心,請從這一章開始,我們一起打招呼~
第1章 hello world驅動 1
1.1 從hello world開始 2
1.1.1 hellodriver 4
1.1.2 代碼解釋 8
1.1.3 驅動程序的編譯和安裝 11
1.1.4 查看我們的驅動 14
1.2 虛擬環境 15
1.2.1 使用虛擬環境進行驅動開發 15
1.2.2 使用vmware虛擬機 15
1.2.3 目標機設置 16
1.2.4 virtual pc虛擬機 18
1.3 小結 19
如何在規范的商業環境中,開發成功而有效的驅動軟件?驅網站長馬勇(znsoft)將向你娓娓道來。你會學到這些內容:建立一個簡單而有效的開發、調試環境;64位環境下的內核編程技巧;如何發布你的驅動軟件。
第2章 商業驅動開發技術 20
2.1 建立開發調試環境 21
2.1.1 svn環境 21
2.1.2 創建工程,導入svn 23
2.1.3 建立符號服務器 25
2.1.4 用符號調試 27
.2.2 64位驅動開發技術 34
2.2.1 64位驅動編寫技術 35
2.2.2 32位應用程序與64位驅動混合模式 36
2.3 驅動程序的發布與測試 42
2.3.1 驅動程序簽名 42
2.3.2 驅動程序測試 46
2.3.3 whql 49
2.4 小結 50
wdf是目前最新的驅動編程框架。當很多內核程序員還緊抱wdm的巨大佛腳時,千萬要記住,wdf已是大勢所趨。本章介紹了wdf最重要的幾個概念,並進行了一定程度的深度挖掘。對於wdf框架的三大核心模型:對象模型、事件模型、pnp/power模型,本章作了重點講述。
第3章 wdf概述 51
3.1 主要特點 52
3.2 框架視圖 53
3.3 兼容性 55
3.4 對象模型 56
3.4.1 對象和句柄 59
3.4.2 引用計數 60
3.4.3 上下文空間 61
3.4.4 pme接口 67
3.4.5 ddi接口 69
3.4.6 父子關系 76
3.4.7 對象同步 77
3.5 驅動對象和設備對象 78
3.5.1 驅動對象 78
3.5.2 驅動入口driverentry 81
3.5.3 設備對象 84
3.5.4 創建設備對象 85
3.5.5 設備棧 86
3.6 io模型 88
3.6.1 io目標對象 88
3.6.2 io目標對象的細節 90
3.6.3 安全的緩沖區 93
3.6.4 內存對象(一) 96
3.6.5 內存對象(二) 98
3.6.6 框架和io請求 102
3.6.7 更詳細的處理流程 103
3.6.8 io請求參數 105
3.6.9 隊列 107
3.6.10 創建io請求 110
3.7 pnp和電源模型 112
3.8 小結 115
使用wdf框架開發usb驅動,方便且簡單。本章首先總體上從硬件和軟件兩個方面介紹usb相關知識點,包括設備的電氣特性、總線結構、usb驅動類型以及類驅動。編程方面,從usb設備初始化、數據操作以及設備控制等幾個方面來講解,透徹並且翔實。
第4章 wdf usb設備驅動開發 116
4.1 usb設備硬件結構 117
4.1.1 主從結構 117
4.1.2 硬件拓撲 118
4.1.3 usb中斷 119
4.2 usb軟件結構 120
4.2.1 總線驅動 120
4.2.2 系統類驅動 121
4.2.3 功能驅動 122
4.2.4 父驅動與混合設備 122
4.2.5 過濾驅動 125
4.2.6 usb驅動棧、設備棧 125
4.3 內核開發 127
4.3.1 設備驅動 127
4.3.2 入口函數 128
4.3.3 usb描述符 129
4.3.4 描述符介紹 130
4.3.5 匯總舉例 133
4.3.6 讀取描述符 135
4.3.7 初始化 137
4.3.8 設備初始化函數 138
4.3.9 創建設備對象 141
4.3.10 設備命名、符號鏈接 143
4.3.11 啟動設備 147
4.3.12 創建隊列 156
4.3.13 停止設備/反初始化 158
4.4 數據i/o操作 160
4.4.1 usb控制命令 160
4.4.2 構造並發送控制命令 162
4.4.3 讀usb中斷端口 163
4.4.4 連續讀操作 165
4.4.5 數據處理函數 166
4.4.6 中斷端口的效率 167
4.4.7 讀/寫批量端口 168
4.5 設備控制 171
4.5.1 關於i/o target對象 171
4.5.2 獲取usb版本 172
4.5.3 管道重置 174
4.5.4 設備重置 176
4.5.5 管道中止與終止 177
4.6 用戶程序 179
4.6.1 內核讀/寫 179
4.6.2 控制命令 179
4.7 小結 180
1394俗稱火線。大伙平時最多接觸它的地方大概是內核調試時,借助1394卡進行雙機互聯。本章首先從硬件方面介紹了1394的知識,它的總線結構很特別,極具可擴性,能非常方便地在各種類型的1394設備之間建立數據鏈路。內核編程方面,本章重點講解了數據通信相關知識,分為異步通信和同步通信兩種方式,頗為復雜,相對難於掌握,但套路是現成的,變化的東西不多,可以熟能生巧。本章最後介紹了1394雙機互聯的原理,有興趣的讀者可參考之。
第5章 wdf 1394驅動開發 181
5.1 1394一席談 182
5.1.1 版本情況 183
5.1.2 電源特性 183
5.1.3 1394卡 183
5.1.4 總線拓撲 184
5.2 發送請求 186
5.2.1 同步方式 187
5.2.2 異步方式 189
5.2.3 對wdm的回憶 191
5.3 總線重置與計數 193
5.3.1 總線重置 193
5.3.2 設置重置回調 193
5.3.3 計數更新 194
5.4 pnp操作 195
5.5 異步通信 196
5.5.1 地址范圍 197
5.5.2 異步讀 200
5.5.3 異步寫 201
5.5.4 異步鎖請求 202
5.5.5 數據流 203
5.6 等時通信 204
5.6.1 申請帶寬 205
5.6.2 釋放帶寬 206
5.6.3 等時通道 206
5.6.4 資源句柄 207
5.6.5 緩沖區掛載 210
5.6.6 緩沖區解掛 211
5.6.7 開始傳輸 211
5.6.8 停止傳輸 212
5.6.9 其他等時操作 213
5.7 其他操作 213
5.7.1 設備配置 213
5.7.2 獲取控制器信息 214
5.7.3 速度信息 215
5.7.4 廠商自定義命令 216
5.8 安裝與測試 216
5.8.1 1394虛擬設備 216
5.8.2 創建虛擬設備 218
5.8.3 示例代碼 219
5.8.4 安裝與測試 221
5.9 小結 222
內核天生適合於c語言編程,但越來越多的內核項目,規模達到10數萬的規模。在這種情況下,人們不由地會將目光投向優雅的c++語言。總體上說,c和c++是至親好友,內核中使用c++本不應有什麼大問題,但有幾個暗礁潛伏已久,不小心的程序員,你可千萬不要觸礁。
第6章 內核驅動c++編程 223
6.1 驅動中的類 224
6.1.1 一個簡單的例子 224
6.1.2 new/delete 225
6.1.3 extern "c" 227
6.1.4 全局/靜態變量 228
6.1.5 棧的憂慮 230
6.2 類封裝的驅動程序 233
6.2.1 尋找合適的存儲所 233
6.2.2 類方法與事件函數 235
6.2.3 kmdf驅動實現 236
6.2.4 wdm驅動實現 237
6.3 多態 238
6.3.1 基類、子類 238
6.3.2 實現多態 239
6.3.3 測試 241
6.4 小結 241
使用wdf框架編寫的驅動程序,在測試和調試的時候,有特殊的工具。本章介紹了目前所知的三個,它們分別是:windbg擴展調試命令、wdftester測試工具、wdfverifier測試工具。本章將以示例方式,介紹這些工具的使用。
第7章 wdf驅動測試 242
7.1 wdf錯誤 243
7.1.1 實例分析 245
7.1.2 usb錯誤 246
7.2 wdf擴展調試命令 247
7.3 wdftester 254
7.3.1 wdffitester 254
7.3.2 使用 256
7.3.3 wdfcalltracer 260
7.4 wdfverifier 263
7.4.1 識別kmdf驅動 263
7.4.2 使用與介紹 265
7.5 小結 266
softice漸行漸遠之後,windbg成為內核調試的第一利器。使用windbg的最大難點是命令繁多,參數復雜。本章以總結歸納的形式,介紹了作者在工作中經常用到的幾大類調試命令,並以實例形式一一介紹。作者根據個人經驗所作的分類,未能全備,但能夠保證的是,所有實例翔實而可靠,可以作為可信的參考。
第8章 調試命令詳解 267
8.1 概述 268
8.1.1 尋求幫助 269
8.1.2 dml語言 270
8.1.3 基本信息 271
8.1.4 基本設置 272
8.1.5 格式化顯示 273
8.1.6 開始調試 273
8.2 符號與源碼 276
8.2.1 模塊列表 277
8.2.2 模塊信息 279
8.2.3 符號路徑 280
8.2.4 符號加載 283
8.2.5 符號搜索 285
8.2.6 源碼命令 287
8.3 進程與線程 289
8.3.1 進程命令 289
8.3.2 線程命令 292
8.3.3 異常與事件 296
8.3.4 局部變量 300
8.3.5 顯示類型 301
8.4 斷點 301
8.4.1 軟件斷點 301
8.4.2 硬件斷點 303
8.4.3 其他操作 303
8.5 內存命令 304
8.5.1 查看內存 304
8.5.2 內存信息 307
8.5.3 其他命令 311
8.6 小結 312
相信大多數人在學習內核開發的時候,都問過這樣一個問題:內核驅動怎麼向用戶程序發送消息,或者如何調用win32函數。用戶程序和內核同步,是一個基本而重要的知識,本章介紹了三種主要的實現方式。至於內核是否可以調用win32函數,讀一讀本章開篇的話,你就有答案了。
第9章 內核同步 313
9.1 關於內核同步 314
9.2 內核事件同步 316
9.2.1 原理 316
9.2.2 用戶程序 318
9.2.3 內核實現 319
9.3 irp同步 320
9.3.1 用戶程序 321
9.3.2 內核實現 323
9.4 wmi同步 325
9.5 數據緩沖區同步 326
9.6 反向調用 328
9.7 小結 330
微軟最新的音視頻編程框架即avstream框架,不管從什麼方面來說,音視頻編程都是一個很小眾的領域。avstream框架極其復雜,個人看法是掌握的難度超過了wdf。本章介紹了avstream框架的各種基本知識點,並以實例講解一個內核音頻過濾器在系統中是如何工作的。
第10章 音頻驅動開發 331
10.1 簡介 332
10.1.1 音頻模塊架構 332
10.1.2 系統中的音頻設備 334
10.2 avstream對象 338
10.2.1 設備對象 339
10.2.2 filter工廠和filter對象 340
10.2.3 pin工廠和pin對象 342
10.2.4 node對象與connection結構體 343
10.3 avstream描述符 346
10.3.1 描述符簡介 346
10.3.2 描述符示例 347
10.3.3 分發函數表 349
10.3.4 自控表 349
10.3.5 自控表示例 351
10.4 代碼講解 355
10.4.1 入口函數 355
10.4.2 設備分發函數 357
10.4.3 filter與pin分發函數 358
10.4.4 創建和刪除 359
10.4.5 數據處理 360
10.4.6 數據格式 362
10.5 自控表函數 364
10.5.1 事件函數 364
10.5.2 屬性函數 366
10.5.3 方法函數 367
10.5.4 用戶接口 367
10.6 硬件操作 370
10.6.1 數據dma 370
10.6.2 avstream中的dma實現 371
10.6.3 談談isr 374
10.7 安裝與測試 376
10.7.1 安裝 376
10.7.2 測試工具 376
10.8 小結 379
asio音頻驅動具有兩個非常亮眼的優點:低延遲、多通道。低延遲能夠達到幾毫秒,使得最靈敏的耳朵也難也察覺;多通道則讓通常的雙聲道、6.1聲道等一齊歇菜,而可以很輕松地讓多達十幾、幾十個聲道同時工作,在進行高級音頻編輯時,這非常重要。
第11章 asio虛擬聲卡 380
11.1 引言 381
11.2 關於asio 383
11.3 asio用戶驅動 384
11.3.1 com接口 384
11.3.2 安裝與卸載 386
11.3.3 iasio接口 387
11.3.4 技術核心 390
11.3.5 計算延遲 392
11.4 內核驅動實現 393
11.4.1 同步 393
11.4.2 原理 393
11.4.3 實現 396
11.5 asio音頻軟件 396
11.6 小結 397
從本章開始的三章內容,講的都是“驅動安裝”這個話題。在本章中,介紹了系統中和驅動安裝有關的各種系統模塊。讀者通過閱讀本章後,至少能夠掌握這兩個基本知識:系統如何識別一個舊設備,並為它加載合適的驅動文件;系統如何發現一個新設備,並完成驅動安裝。
第12章 設備驅動安裝入門 399
12.1 基礎知識預介 400
12.1.1 設備類型 400
12.1.2 設備實例id 401
12.1.3 驅動加載和安裝 403
12.2 安裝模塊 404
12.2.1 內核pnp管理器 405
12.2.2 用戶pnp管理器 406
12.2.3 安裝接口函數(setup api) 408
12.2.4 配置管理器接口(cfgmgr api) 410
12.2.5 類安裝器(class installers) 410
12.2.6 類協安裝器(class co-installers) 410
12.2.7 設備協安裝器(device co-installers) 411
12.2.8 驅動包(driver package) 412
12.2.9 驅動倉庫(driver store) 413
12.2.10 設備管理器(device manager) 414
12.2.11 安裝程序 415
12.2.12 新設備向導 416
12.2.13 添加硬件向導 416
12.2.14 驅動安裝器(driver installer) 416
12.3 重要問題 417
12.3.1 尋找和選擇 417
12.3.2 32位與64位系統兼容 418
12.3.3 系統重啟 419
12.4 安裝模式 420
12.4.1 示例1:客戶端模式 421
12.4.2 示例2:服務器模式 423
12.5 安裝器編程 424
12.5.1 dif碼 424
12.5.2 處理流程 427
12.5.3 工程示例 429
12.5.4 注冊 430
12.6 小結 431
inf文件即驅動程序的“安裝文件”,它包含了各種與驅動安裝有關的指令信息。通過inf文件,系統知道如何處理驅動包中的各個文件,並在系統注冊表中做出准確記錄。本章主要從指令和域,這兩個方面進行講解。
第13章 深入解析inf文件 432
13.1 概述 433
13.1.1 域 433
13.1.2 指令 434
13.1.3 多系統 435
13.2 注冊表指令 436
13.2.1 縮寫根鍵 436
13.2.2 軟件鍵 437
13.2.3 硬件鍵 437
13.2.4 addreg 438
13.2.5 delreg 440
13.2.6 bitreg 441
13.3 文件操作指令 441
13.3.1 copyfiles 441
13.3.2 delfiles 443
13.3.3 renfiles 443
13.4 服務指令 444
13.4.1 addservice 444
13.4.2 delservice 445
13.5 基本域 446
13.5.1 版本域 446
13.5.2 文件域 447
13.5.3 默認安裝域 451
13.5.4 控制域 454
13.5.5 字符串域 457
13.6 設備類安裝域 458
13.6.1 主域 459
13.6.2 服務子域 461
13.7 接口類安裝域 461
13.8 廠商/產品域 462
13.8.1 廠商域 463
13.8.2 產品域 464
13.9 設備安裝域 464
13.9.1 硬件子域 466
13.9.2 協安裝器子域 467
13.9.3 接口子域 468
13.9.4 廠商默認配置子域 469
13.9.5 邏輯優先配置子域 470
13.10 chkinf介紹 471
13.11 小結 472
驅動安裝程序讓你的驅動軟件顯得更加專業,所以,放棄手動安裝驅動的做法吧,你的驅動將顯得更靓。本章的示例軟件mydrvinst,可以作為讀者設計更漂亮的安裝軟件的開始。
第14章 設計驅動安裝程序 473
14.1 驅動包 474
14.1.1 安裝方式 474
14.1.2 安裝驅動包 475
14.1.3 卸載驅動包 476
14.2 驅動更新 477
14.2.1 設備已連接 477
14.2.2 設備未連接 478
14.2.3 枚舉系統設備 481
14.3 分析inf文件 484
14.3.1 函數介紹 484
14.3.2 打印設備id 486
14.4 mydrvinst介紹 487
14.5 制作軟件安裝包 490
14.5.1 視圖介紹 490
14.5.2 我們的工程 492
14.5.3 編譯執行 493
14.6 小結 494
附錄a cy001 usb開發板 495
附錄b visualkd + vmware實現單機內核調試 501 
相關資源:

免責聲明:本網站內容收集於互聯網,本站不承擔任何由於內容的合法性及健康性所引起的爭議和法律責任。如果侵犯了你的權益,請通知我們,我們會及時刪除相關內容,謝謝合作! 聯系信箱:[email protected]

Copyright © 電驢下載基地 All Rights Reserved