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


![竹林蹊徑 深入淺出Windows驅(qū)動(dòng)開發(fā) 張佩等著 中文 PDF版 [106M]](http://img.jbzj.com/do/uploads/litimg/121121/1534161631I.jpg)









