注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)操作系統(tǒng)WindowsWindows 7設(shè)備驅(qū)動(dòng)程序開發(fā)預(yù)售商品

Windows 7設(shè)備驅(qū)動(dòng)程序開發(fā)預(yù)售商品

Windows 7設(shè)備驅(qū)動(dòng)程序開發(fā)預(yù)售商品

定 價(jià):¥45.00

作 者: (美) Ronald D. Reeves 著,張猛 ,紀(jì)小玲, 周姝嫣 譯
出版社: 人民郵電出版社
叢編項(xiàng):
標(biāo) 簽: WINDOWS

ISBN: 9787115265791 出版時(shí)間: 2012-01-01 包裝: 平裝
開本: 16開 頁數(shù): 字?jǐn)?shù):  

內(nèi)容簡介

  設(shè)備驅(qū)動(dòng)程序是非常特殊的軟件,應(yīng)用程序通過它才能與外界溝通。Windows7與外界的所有溝通都必須有設(shè)備驅(qū)動(dòng)程序的參與。本書介紹了編寫Windows7設(shè)備驅(qū)動(dòng)程序所需的知識,涵蓋了用戶模式驅(qū)動(dòng)程序開發(fā)、內(nèi)核模式驅(qū)動(dòng)程序開發(fā)、WDF架構(gòu)、驅(qū)動(dòng)程序調(diào)試等主題。作者展示了如何利用微軟提供的強(qiáng)大工具和模型,高效地開發(fā)穩(wěn)定、健壯的驅(qū)動(dòng)程序。通過本書,你將學(xué)會(huì):? 如何使用WDF減少開發(fā)時(shí)間,提高系統(tǒng)穩(wěn)定性,增強(qiáng)實(shí)用性;? 如何利用UMDF和KMDF進(jìn)行開發(fā);? 如何以最佳方式設(shè)計(jì)、開發(fā)、調(diào)試用戶模式驅(qū)動(dòng)程序和內(nèi)核模式驅(qū)動(dòng)程序;? 如何管理I/O請求和隊(duì)列、自管理I/O、同步、鎖、即插即用、電源管理和設(shè)備枚舉;?如何利用COM開發(fā)UMDF;? 如何利用安全的默認(rèn)設(shè)置、參數(shù)驗(yàn)證、Unicode計(jì)數(shù)字符串和安全的設(shè)備命名技巧,確保用戶模式驅(qū)動(dòng)程序的安全。無論是開發(fā)實(shí)驗(yàn)器材、通信硬件或其他設(shè)備的Windows驅(qū)動(dòng),本書都有助于加速產(chǎn)品的上市。

作者簡介

  Ronald D. Reeves工 程學(xué)和計(jì)算機(jī)科學(xué)專業(yè)雙料博士。他具有40多年的計(jì)算機(jī)硬件、軟件和驅(qū)動(dòng)程序的設(shè)計(jì)和開發(fā)經(jīng)驗(yàn),是軟件開發(fā)和咨詢公司SoftwareGenesis的創(chuàng)始人兼董事長。他是美國知名的技術(shù)作家、咨詢顧問和教師,是Win32 System Services(PrenticeHall,2001)的作者之一,曾為兩本介紹設(shè)備驅(qū)動(dòng)程序的圖書做過技術(shù)審稿人。目前他在勞倫斯理工大學(xué)和克利里大學(xué)教授研究生課程。

圖書目錄

第一部分  設(shè)備驅(qū)動(dòng)程序體系結(jié)構(gòu)概述
第1 章  對象  2
1.1  對象的本質(zhì)  2
1.2  軟件對象是什么  2
1.3  預(yù)備知識  4
1.4  軟件組件  4
第2 章  WDF 體系結(jié)構(gòu)  6
2.1  WDF 組件的功能  6
2.2  WDF 的設(shè)計(jì)目標(biāo)  7
2.3  WDF 中的設(shè)備和驅(qū)動(dòng)程序支持  7
2.4  WDF 驅(qū)動(dòng)程序模型  8
2.5  WDF 對象模型  9
2.5.1  內(nèi)核模式對象  10
2.5.2  用戶模式對象  10
2.6  即插即用和電源管理支持  11
2.7  集成的I/O 排隊(duì)和取消  12
2.7.1  并發(fā)  12
2.7.2  I/O 模型  13
2.7.3  I/O 請求流程  13
2.7.4  設(shè)備I/O 請求  14
2.7.5  即插即用和電源管理請求  15
2.8  WMI 請求(僅限內(nèi)核模式驅(qū)動(dòng)程序)  15
2.9  驅(qū)動(dòng)程序框架  15
2.9.1  內(nèi)核模式框架  16
2.9.2  用戶模式框架  18
2.10  Windows 內(nèi)核  18
2.10.1  反射器  19
2.10.2  驅(qū)動(dòng)程序宿主進(jìn)程  19
2.10.3  驅(qū)動(dòng)程序管理器  19
2.11  開發(fā)和測試工具  19
2.11.1  PFD  20
2.11.2  SDV   21
2.11.3  框架驗(yàn)證器  21
2.11.4  跟蹤日志  21
2.11.5  調(diào)試器擴(kuò)展  22
2.11.6  適用性和版本控制  22
第二部分  用戶模式驅(qū)動(dòng)程序
第3 章  Windows 7 用戶模式驅(qū)動(dòng)程序概述和操作  24
3.1  在用戶模式中支持的設(shè)備  24
3.2  UMDF 模型概述  25
3.2.1  UMDF 對象模型  27
3.2.2  UMDF 對象  27
3.3  驅(qū)動(dòng)程序回調(diào)接口  28
3.4  UMDF 驅(qū)動(dòng)程序功能  29
3.4.1  身份模擬  30
3.4.2  設(shè)備屬性存儲(chǔ)  30
3.5  I/O 請求流  30
3.5.1  I/O 請求調(diào)度  32
3.5.2  創(chuàng)建、清理和關(guān)閉請求  32
3.5.3  創(chuàng)建、讀、寫和設(shè)備I/O 控制請求  34
3.6 I/O  隊(duì)列  35
3.6.1  調(diào)度類型  36
3.6.2  隊(duì)列和電源管理  36
3.7 I/O  請求對象  37
3.7.1  根據(jù)I/O 請求獲取緩沖區(qū)  37
3.7.2  向I/O 目標(biāo)發(fā)送I/O 請求  38
3.7.3  為I/O 請求創(chuàng)建緩沖區(qū)  39
3.7.4  取消和掛起的請求  40
3.7.5  完成I/O 請求  41
3.7.6  自適應(yīng)超時(shí)  41
3.8  自管理I/O   42
3.9  同步問題  42
3.10  鎖  43
3.11  即插即用和電源管理通知  43
3.12  設(shè)備枚舉和啟動(dòng)  44
3.13  關(guān)閉設(shè)備電源和移除設(shè)備  45
3.14  構(gòu)建、測試和調(diào)試  47
3.14.1  安裝和配置  47
3.14.2  版本控制和更新  48
第4 章  針對UMDF 進(jìn)行驅(qū)動(dòng)程序編程  49
4.1  Windows I/O 概述  49
4.2  COM 簡介  51
4.3  UMDF 體系結(jié)構(gòu)  51
4.4  必需的驅(qū)動(dòng)程序功能  53
4.5  UMDF 示例驅(qū)動(dòng)程序  55
4.5.1  最小UMDF 驅(qū)動(dòng)程序:Skeleton 驅(qū)動(dòng)程序  56
4.5.2  Skeleton 驅(qū)動(dòng)程序的類、對象和接口  56
4.6  驅(qū)動(dòng)程序動(dòng)態(tài)鏈接庫和導(dǎo)出  57
4.6.1  驅(qū)動(dòng)程序入口點(diǎn):DllMain  57
4.6.2  獲得類對象:DllGetClassObject   59
4.7  COM 支持函數(shù)  60
4.7.1  IUnknown 方法  60
4.7.2  IClassFactory 接口  61
4.7.3  驅(qū)動(dòng)程序回調(diào)對象  61
4.7.4  設(shè)備回調(diào)對象  64
4.8  以Skeleton 驅(qū)動(dòng)程序?yàn)榛A(chǔ)進(jìn)行開發(fā)  69
4.8.1  自定義導(dǎo)出文件  69
4.8.2  自定義源文件  69
4.8.3  自定義INX 文件  70
4.8.4  自定義Comsup.cpp 文件  70
4.8.5  將特定于設(shè)備的代碼加入Driver.cpp   70
4.8.6  將特定于設(shè)備的代碼加入Device.cpp   71
第5 章  使用COM 開發(fā)UMDF 驅(qū)動(dòng)程序  72
5.1  入門指南  72
5.1.1  COM 基礎(chǔ)知識   72
5.1.2  HRESULT   74
5.2  使用UMDF COM 對象   75
5.2.1  獲得UMDF 對象的接口   76
5.2.2  引用計(jì)數(shù)   77
5.3  基本的基礎(chǔ)設(shè)施實(shí)現(xiàn)   78
5.3.1  DllMain    78
5.3.2  DllGetClassObject    78
5.3.3  驅(qū)動(dòng)程序?qū)ο蟮念惞S   79
5.3.4  實(shí)現(xiàn)UMDF 回調(diào)對象   79
5.3.5  實(shí)現(xiàn)QueryInterface    81
第三部分  內(nèi)核模式驅(qū)動(dòng)程序
第6 章  Windows 7 內(nèi)核模式驅(qū)動(dòng)程序概述與操作  84
6.1  KMDF 支持的設(shè)備   84
6.2  KMDF 組件  85
6.3  KMDF 驅(qū)動(dòng)程序結(jié)構(gòu)   85
6.4  KMDF 和WDM 驅(qū)動(dòng)程序比較   86
6.5  設(shè)備對象和驅(qū)動(dòng)程序角色   87
6.5.1  過濾器驅(qū)動(dòng)程序和過濾器設(shè)備對象   88
6.5.2  功能驅(qū)動(dòng)程序和功能設(shè)備對象   88
6.5.3  總線驅(qū)動(dòng)程序和物理設(shè)備對象   89
6.5.4  舊版設(shè)備驅(qū)動(dòng)程序和控制設(shè)備對象   89
6.6  KMDF 對象模型  90
6.6.1  方法、屬性和事件   90
6.6.2  對象層次結(jié)構(gòu)   91
6.6.3  對象特性  93
6.6.4  對象上下文  93
6.6.5  對象創(chuàng)建和刪除  94
6.7  KMDF I/O 模型  95
6.7.1  I/O 請求處理程序  96
6.7.2  I/O 隊(duì)列  97
6.7.3  I/O 請求對象  100
6.7.4  從I/O 請求檢索緩沖區(qū)  100
6.7.5  I/O 目標(biāo)  101
6.7.6  創(chuàng)建I/O 請求緩沖區(qū)  102
6.7.7  取消和掛起請求  102
6.7.8  完成I/O 請求  104
6.7.9  自托管I/O   104
6.7.10  訪問IRP 和WDM 結(jié)構(gòu)  104
第7 章  即插即用和電源管理  105
7.1  即插即用和電源管理概述  105
7.2  設(shè)備枚舉和啟動(dòng)  106
7.2.1  功能或過濾器設(shè)備對象的啟動(dòng)順序  106
7.2.2  物理設(shè)備對象的啟動(dòng)順序  107
7.2.3  設(shè)備電源關(guān)閉和移除  108
7.3  WMI 請求處理程序  111
7.4  同步問題  112
7.4.1  同步范圍  112
7.4.2  執(zhí)行級別  114
7.4.3  鎖  115
7.4.4  同步機(jī)制的交互作用  115
7.5  安全  116
7.5.1  安全默認(rèn)值  116
7.5.2  參數(shù)驗(yàn)證  116
7.5.3  Unicode 計(jì)數(shù)字符串  116
7.5.4  安全設(shè)備命名技術(shù)  117
第8 章  內(nèi)核模式的安裝和生成  118
8.1  WDK 生成工具  118
8.2  生成環(huán)境  119
8.3  生成項(xiàng)目  120
8.4  生成Featured Toaster   120
8.4.1  Makefile 和Makefile.inc   121
8.4.2  源文件  121
8.4.3  生成過程  122
8.5  安裝KMDF 驅(qū)動(dòng)程序  123
8.5.1  WDF 輔助安裝程序  123
8.5.2  INF  123
8.5.3  KMDF 驅(qū)動(dòng)程序的INF  124
8.5.4  wdffeatured.inf  124
8.6  目錄文件和數(shù)字簽名  125
8.7  安裝Featured Toaster  126
8.8  測試KMDF 驅(qū)動(dòng)程序  127
8.8.1  PREfast   127
8.8.2  SDV  127
8.8.3  KMDF 日志  128
8.8.4  KMDF 驗(yàn)證程序  128
8.8.5  調(diào)試KMDF 驅(qū)動(dòng)程序  129
8.8.6  內(nèi)核調(diào)試  130
8.8.7  KMDF 驅(qū)動(dòng)程序功能  130
8.9  調(diào)試宏和例程  131
8.10  WDF 調(diào)試程序擴(kuò)展命令  132
8.11  使用WPP 跟蹤與KMDF 驅(qū)動(dòng)程序  132
8.12  使用WinDbg 與Featured Toaster   133
8.13  版本控制和動(dòng)態(tài)綁定  135
第9 章  為KMDF 編寫驅(qū)動(dòng)程序  136
9.1  KMDF 與WDM 示例之間的差別  139
9.2  KMDF 示例中使用的宏  140
9.3  KMDF 驅(qū)動(dòng)程序結(jié)構(gòu)和概念  140
9.3.1  對象創(chuàng)建  141
9.3.2  對象上下文區(qū)  141
9.3.3  I/O 隊(duì)列  142
9.3.4  I/O 請求  143
9.4  最小的KMDF 驅(qū)動(dòng)程序:SimpleToaster   143
9.4.1  創(chuàng)建WDF 驅(qū)動(dòng)程序?qū)ο螅篋riverEntry   144
9.4.2  創(chuàng)建設(shè)備對象、設(shè)備接口和I/O 隊(duì)列:EvtDriver-DeviceAdd  145
9.4.3  設(shè)備對象和設(shè)備上下文區(qū)  147
9.4.4  設(shè)備接口  148
9.4.5  默認(rèn)I/O 隊(duì)列  149
9.4.6  處理I/O 請求:EvtIoRead、EvtIoWrite、EvtIoDevice-Control  150
9.5  純軟件驅(qū)動(dòng)程序示例  151
9.5.1  文件創(chuàng)建和關(guān)閉請求  151
9.5.2  其他的設(shè)備對象特性  153
9.5.3  設(shè)置其他設(shè)備對象屬性  154
第10 章  為即插即用和電源管理編寫程序  156
10.1  注冊回調(diào)函數(shù)  156
10.2  管理電源策略  159
10.3  通電和斷電時(shí)的回調(diào)函數(shù)  161
10.4  支持喚醒信號的回調(diào)函數(shù)  162
第11 章  為WMI 支持編寫程序  163
11.1  WMI 體系結(jié)構(gòu)  163
11.2  注冊為WMI 數(shù)據(jù)提供程序  163
11.3  處理WMI 請求  164
11.4  WDM 驅(qū)動(dòng)程序的WMI 要求  165
11.5  WMI 類名和基類  166
11.6  觸發(fā)WMI 事件  168
11.7  解決具體的WMI 問題  172
11.7.1  驅(qū)動(dòng)程序的WMI 類并不出現(xiàn)在\\root\\wmi 命名空間中  172
11.7.2  不能訪問驅(qū)動(dòng)程序的WMI屬性或方法  172
11.7.3  未接收驅(qū)動(dòng)程序的WMI事件  173
11.7.4  改變WMI 請求的安全設(shè)置并不生效  173
11.8  測試WMI 驅(qū)動(dòng)程序支持的技術(shù)  174
11.8.1  WMI IRP 和系統(tǒng)事件日志  174
11.8.2  WMI WDM 提供程序日志  174
11.9  WMI 事件跟蹤  175
第12 章  編寫KMDF 硬件驅(qū)動(dòng)程序  177
12.1  支持設(shè)備中斷  177
12.1.1  創(chuàng)建中斷對象  178
12.1.2  創(chuàng)建中斷對象的代碼   178
12.1.3  啟用和禁用中斷   179
12.1.4  啟用中斷的代碼   179
12.1.5  禁用中斷的代碼   180
12.1.6  啟用中斷后和禁用中斷前的處理   180
12.2  處理中斷   181
12.2.1  EvtInterruptIsr 回調(diào)函數(shù)的代碼   182
12.2.2  中斷的延遲處理   183
12.3  映射資源   184
12.3.1  映射資源的代碼  185
12.3.2  取消映射資源的代碼   189
第13 章  編寫多個(gè)I/O 隊(duì)列程序并編寫I/O 程序   190
13.1  編寫I/O 隊(duì)列簡介   190
13.2  創(chuàng)建和配置隊(duì)列  191
13.2.1  為寫請求創(chuàng)建隊(duì)列的代碼   192
13.2.2  為讀請求創(chuàng)建隊(duì)列的代碼   193
13.2.3  為設(shè)備I/O 控制請求創(chuàng)建隊(duì)列的代碼   194
13.3  處理并行隊(duì)列的請求   195
13.3.1  處理I/O 請求的代碼   195
13.3.2  執(zhí)行緩沖I/O    197
13.4  將請求轉(zhuǎn)發(fā)給隊(duì)列   198
13.5  從手動(dòng)隊(duì)列獲取請求   199
13.6  讀取和寫入注冊表   202
13.7  監(jiān)視器計(jì)時(shí)器:自管理I/O    205
13.7.1  啟動(dòng)和重啟自管理I/O設(shè)備   206
13.7.2  設(shè)備斷電和移除期間的自管理I/O    206
13.7.3  實(shí)現(xiàn)監(jiān)視器計(jì)時(shí)器   207
附錄  驅(qū)動(dòng)程序信息網(wǎng)站   212
參考 文獻(xiàn)   221

本目錄推薦

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