出版時(shí)間:2012-1 出版社:人民郵電 作者:里夫斯 頁(yè)數(shù):220 譯者:張猛,紀(jì)小玲,周姝嫣
Tag標(biāo)簽:無(wú)
內(nèi)容概要
設(shè)備驅(qū)動(dòng)程序是非常特殊的軟件,應(yīng)用程序通過(guò)它才能與外界溝通。Windows
7與外界的所有溝通都必須有設(shè)備驅(qū)動(dòng)程序的參與。
本書(shū)介紹了編寫(xiě)Windows
7設(shè)備驅(qū)動(dòng)程序所需的知識(shí),涵蓋了用戶模式驅(qū)動(dòng)程序開(kāi)發(fā)、內(nèi)核模式驅(qū)動(dòng)程序開(kāi)發(fā)、WDF架構(gòu)、驅(qū)動(dòng)程序調(diào)試等主題。作者展示了如何利用微軟提供的強(qiáng)大工具和模型,高效地開(kāi)發(fā)穩(wěn)定、健壯的驅(qū)動(dòng)程序。
通過(guò)本書(shū),你將學(xué)會(huì):
如何使用WDF減少開(kāi)發(fā)時(shí)間,提高系統(tǒng)穩(wěn)定性,增強(qiáng)實(shí)用性;
如何利用UMDF和KMDF進(jìn)行開(kāi)發(fā);
如何以最佳方式設(shè)計(jì)、開(kāi)發(fā)、調(diào)試用戶模式驅(qū)動(dòng)程序和內(nèi)核模式驅(qū)動(dòng)程序;
如何管理I/O請(qǐng)求和隊(duì)列、自管理I/O、同步、鎖、即插即用、電源管理和設(shè)備枚舉;
如何利用COM開(kāi)發(fā)UMDF;
如何利用安全的默認(rèn)設(shè)置、參數(shù)驗(yàn)證、Unicode計(jì)數(shù)字符串和安全的設(shè)備命名技巧,確保用戶模式驅(qū)動(dòng)程序的安全。
無(wú)論是開(kāi)發(fā)實(shí)驗(yàn)器材、通信硬件或其他設(shè)備的Windows驅(qū)動(dòng),本書(shū)都有助于加速產(chǎn)品的上市。
作者簡(jiǎn)介
Ronald D. Reeves
工 程學(xué)和計(jì)算機(jī)科學(xué)專業(yè)雙料博士。他具有40多年的計(jì)算機(jī)硬件、軟件和驅(qū)動(dòng)程序的設(shè)計(jì)和開(kāi)發(fā)經(jīng)驗(yàn),是軟件開(kāi)發(fā)和咨詢公司Software
Genesis的創(chuàng)始人兼董事長(zhǎng)。他是美國(guó)知名的技術(shù)作家、咨詢顧問(wèn)和教師,是Win32 System Services(Prentice
Hall,
2001)的作者之一,曾為兩本介紹設(shè)備驅(qū)動(dòng)程序的圖書(shū)做過(guò)技術(shù)審稿人。目前他在勞倫斯理工大學(xué)和克利里大學(xué)教授研究生課程。
書(shū)籍目錄
第一部分 設(shè)備驅(qū)動(dòng)程序體系結(jié)構(gòu)概述
第1 章 對(duì)象
1.1 對(duì)象的本質(zhì)
1.2 軟件對(duì)象是什么
1.3 預(yù)備知識(shí)
1.4 軟件組件
第2 章 WDF 體系結(jié)構(gòu)
2.1 WDF 組件的功能
2.2 WDF 的設(shè)計(jì)目標(biāo)
2.3 WDF 中的設(shè)備和驅(qū)動(dòng)程序支持
2.4 WDF 驅(qū)動(dòng)程序模型
2.5 WDF 對(duì)象模型
2.5.1 內(nèi)核模式對(duì)象
2.5.2 用戶模式對(duì)象
2.6 即插即用和電源管理支持
2.7 集成的I/O 排隊(duì)和取消
2.7.1 并發(fā)
2.7.2 I/O 模型
2.7.3 I/O 請(qǐng)求流程
2.7.4 設(shè)備I/O 請(qǐng)求
2.7.5 即插即用和電源管理請(qǐng)求
2.8 WMI 請(qǐng)求(僅限內(nèi)核模式驅(qū)動(dòng)程序)
2.9 驅(qū)動(dòng)程序框架
2.9.1 內(nèi)核模式框架
2.9.2 用戶模式框架
2.10 Windows 內(nèi)核
2.10.1 反射器
2.10.2 驅(qū)動(dòng)程序宿主進(jìn)程
2.10.3 驅(qū)動(dòng)程序管理器
2.11 開(kāi)發(fā)和測(cè)試工具
2.11.1 PFD
2.11.2 SDV
2.11.3 框架驗(yàn)證器
2.11.4 跟蹤日志
2.11.5 調(diào)試器擴(kuò)展
2.11.6 適用性和版本控制
第二部分 用戶模式驅(qū)動(dòng)程序
第3 章 Windows 7 用戶模式驅(qū)動(dòng)程序概述和操作
3.1 在用戶模式中支持的設(shè)備
3.2 UMDF 模型概述
3.2.1 UMDF 對(duì)象模型
3.2.2 UMDF 對(duì)象
3.3 驅(qū)動(dòng)程序回調(diào)接口
3.4 UMDF 驅(qū)動(dòng)程序功能
3.4.1 身份模擬
3.4.2 設(shè)備屬性存儲(chǔ)
3.5 I/O 請(qǐng)求流
3.5.1 I/O 請(qǐng)求調(diào)度
3.5.2 創(chuàng)建、清理和關(guān)閉請(qǐng)求
3.5.3 創(chuàng)建、讀、寫(xiě)和設(shè)備I/O 控制請(qǐng)求
3.6 I/O 隊(duì)列
3.6.1 調(diào)度類型
3.6.2 隊(duì)列和電源管理
3.7 I/O 請(qǐng)求對(duì)象
3.7.1 根據(jù)I/O 請(qǐng)求獲取緩沖區(qū)
3.7.2 向I/O 目標(biāo)發(fā)送I/O 請(qǐng)求
3.7.3 為I/O 請(qǐng)求創(chuàng)建緩沖區(qū)
3.7.4 取消和掛起的請(qǐng)求
3.7.5 完成I/O 請(qǐng)求
3.7.6 自適應(yīng)超時(shí)
3.8 自管理I/O
3.9 同步問(wèn)題
3.10 鎖
3.11 即插即用和電源管理通知
3.12 設(shè)備枚舉和啟動(dòng)
3.13 關(guān)閉設(shè)備電源和移除設(shè)備
3.14 構(gòu)建、測(cè)試和調(diào)試
3.14.1 安裝和配置
3.14.2 版本控制和更新
第4 章 針對(duì)UMDF 進(jìn)行驅(qū)動(dòng)程序編程
4.1 Windows I/O 概述
4.2 COM 簡(jiǎn)介
4.3 UMDF 體系結(jié)構(gòu)
4.4 必需的驅(qū)動(dòng)程序功能
4.5 UMDF 示例驅(qū)動(dòng)程序
4.5.1 最小UMDF 驅(qū)動(dòng)程序:Skeleton 驅(qū)動(dòng)程序
4.5.2 Skeleton 驅(qū)動(dòng)程序的類、對(duì)象和接口
4.6 驅(qū)動(dòng)程序動(dòng)態(tài)鏈接庫(kù)和導(dǎo)出
4.6.1 驅(qū)動(dòng)程序入口點(diǎn):DllMain
4.6.2 獲得類對(duì)象:DllGetClassObject
4.7 COM 支持函數(shù)
4.7.1 IUnknown 方法
4.7.2 IClassFactory 接口
4.7.3 驅(qū)動(dòng)程序回調(diào)對(duì)象
4.7.4 設(shè)備回調(diào)對(duì)象
4.8 以Skeleton 驅(qū)動(dòng)程序?yàn)榛A(chǔ)進(jìn)行開(kāi)發(fā)
4.8.1 自定義導(dǎo)出文件
4.8.2 自定義源文件
4.8.3 自定義INX 文件
4.8.4 自定義Comsup.cpp 文件
4.8.5 將特定于設(shè)備的代碼加入Driver.cpp
4.8.6 將特定于設(shè)備的代碼加入Device.cpp
第5 章 使用COM 開(kāi)發(fā)UMDF 驅(qū)動(dòng)程序
5.1 入門指南
5.1.1 COM 基礎(chǔ)知識(shí)
5.1.2 HRESULT
5.2 使用UMDF COM 對(duì)象
5.2.1 獲得UMDF 對(duì)象的接口
5.2.2 引用計(jì)數(shù)
5.3 基本的基礎(chǔ)設(shè)施實(shí)現(xiàn)
5.3.1 DllMain
5.3.2 DllGetClassObject
5.3.3 驅(qū)動(dòng)程序?qū)ο蟮念惞S
5.3.4 實(shí)現(xiàn)UMDF 回調(diào)對(duì)象
5.3.5 實(shí)現(xiàn)QueryInterface
第三部分 內(nèi)核模式驅(qū)動(dòng)程序
第6 章 Windows 7 內(nèi)核模式驅(qū)動(dòng)程序概述與操作
6.1 KMDF 支持的設(shè)備
6.2 KMDF 組件
6.3 KMDF 驅(qū)動(dòng)程序結(jié)構(gòu)
6.4 KMDF 和WDM 驅(qū)動(dòng)程序比較
6.5 設(shè)備對(duì)象和驅(qū)動(dòng)程序角色
6.5.1 過(guò)濾器驅(qū)動(dòng)程序和過(guò)濾器設(shè)備對(duì)象
6.5.2 功能驅(qū)動(dòng)程序和功能設(shè)備對(duì)象
6.5.3 總線驅(qū)動(dòng)程序和物理設(shè)備對(duì)象
6.5.4 舊版設(shè)備驅(qū)動(dòng)程序和控制設(shè)備對(duì)象
6.6 KMDF 對(duì)象模型
6.6.1 方法、屬性和事件
6.6.2 對(duì)象層次結(jié)構(gòu)
6.6.3 對(duì)象特性
6.6.4 對(duì)象上下文
6.6.5 對(duì)象創(chuàng)建和刪除
6.7 KMDF I/O 模型
6.7.1 I/O 請(qǐng)求處理程序
6.7.2 I/O 隊(duì)列
6.7.3 I/O 請(qǐng)求對(duì)象
6.7.4 從I/O 請(qǐng)求檢索緩沖區(qū)
6.7.5 I/O 目標(biāo)
6.7.6 創(chuàng)建I/O 請(qǐng)求緩沖區(qū)
6.7.7 取消和掛起請(qǐng)求
6.7.8 完成I/O 請(qǐng)求
6.7.9 自托管I/O
6.7.10 訪問(wèn)IRP 和WDM 結(jié)構(gòu)
第7 章 即插即用和電源管理
7.1 即插即用和電源管理概述
7.2 設(shè)備枚舉和啟動(dòng)
7.2.1 功能或過(guò)濾器設(shè)備對(duì)象的啟動(dòng)順序
7.2.2 物理設(shè)備對(duì)象的啟動(dòng)順序
7.2.3 設(shè)備電源關(guān)閉和移除
7.3 WMI 請(qǐng)求處理程序
7.4 同步問(wèn)題
7.4.1 同步范圍
7.4.2 執(zhí)行級(jí)別
7.4.3 鎖
7.4.4 同步機(jī)制的交互作用
7.5 安全
7.5.1 安全默認(rèn)值
7.5.2 參數(shù)驗(yàn)證
7.5.3 Unicode 計(jì)數(shù)字符串
7.5.4 安全設(shè)備命名技術(shù)
第8 章 內(nèi)核模式的安裝和生成
8.1 WDK 生成工具
8.2 生成環(huán)境
8.3 生成項(xiàng)目
8.4 生成Featured Toaster
8.4.1 Makefile 和Makefile.inc
8.4.2 源文件
8.4.3 生成過(guò)程
8.5 安裝KMDF 驅(qū)動(dòng)程序
8.5.1 WDF 輔助安裝程序
8.5.2 INF
8.5.3 KMDF 驅(qū)動(dòng)程序的INF
8.5.4 wdffeatured.inf
8.6 目錄文件和數(shù)字簽名
8.7 安裝Featured Toaster
8.8 測(cè)試KMDF 驅(qū)動(dòng)程序
8.8.1 PREfast
8.8.2 SDV
8.8.3 KMDF 日志
8.8.4 KMDF 驗(yàn)證程序
8.8.5 調(diào)試KMDF 驅(qū)動(dòng)程序
8.8.6 內(nèi)核調(diào)試
8.8.7 KMDF 驅(qū)動(dòng)程序功能
8.9 調(diào)試宏和例程
8.10 WDF 調(diào)試程序擴(kuò)展命令
8.11 使用WPP 跟蹤與KMDF 驅(qū)動(dòng)程序
8.12 使用WinDbg 與Featured Toaster
8.13 版本控制和動(dòng)態(tài)綁定
第9 章 為KMDF 編寫(xiě)驅(qū)動(dòng)程序
9.1 KMDF 與WDM 示例之間的差別
9.2 KMDF 示例中使用的宏
9.3 KMDF 驅(qū)動(dòng)程序結(jié)構(gòu)和概念
9.3.1 對(duì)象創(chuàng)建
9.3.2 對(duì)象上下文區(qū)
9.3.3 I/O 隊(duì)列
9.3.4 I/O 請(qǐng)求
9.4 最小的KMDF 驅(qū)動(dòng)程序:SimpleToaster
9.4.1 創(chuàng)建WDF 驅(qū)動(dòng)程序?qū)ο螅篋riverEntry
9.4.2 創(chuàng)建設(shè)備對(duì)象、設(shè)備接口和I/O 隊(duì)列:EvtDriver-DeviceAdd
9.4.3 設(shè)備對(duì)象和設(shè)備上下文區(qū)
9.4.4 設(shè)備接口
9.4.5 默認(rèn)I/O 隊(duì)列
9.4.6 處理I/O 請(qǐng)求:EvtIoRead、EvtIoWrite、EvtIoDevice-Control
9.5 純軟件驅(qū)動(dòng)程序示例
9.5.1 文件創(chuàng)建和關(guān)閉請(qǐng)求
9.5.2 其他的設(shè)備對(duì)象特性
9.5.3 設(shè)置其他設(shè)備對(duì)象屬性
第10 章 為即插即用和電源管理編寫(xiě)程序
10.1 注冊(cè)回調(diào)函數(shù)
10.2 管理電源策略
10.3 通電和斷電時(shí)的回調(diào)函數(shù)
10.4 支持喚醒信號(hào)的回調(diào)函數(shù)
第11 章 為WMI 支持編寫(xiě)程序
11.1 WMI 體系結(jié)構(gòu)
11.2 注冊(cè)為WMI 數(shù)據(jù)提供程序
11.3 處理WMI 請(qǐng)求
11.4 WDM 驅(qū)動(dòng)程序的WMI 要求
11.5 WMI 類名和基類
11.6 觸發(fā)WMI 事件
11.7 解決具體的WMI 問(wèn)題
11.7.1 驅(qū)動(dòng)程序的WMI 類并不出現(xiàn)在\root\wmi 命名空間中
11.7.2 不能訪問(wèn)驅(qū)動(dòng)程序的WMI屬性或方法
11.7.3 未接收驅(qū)動(dòng)程序的WMI事件
11.7.4 改變WMI 請(qǐng)求的安全設(shè)置并不生效
11.8 測(cè)試WMI 驅(qū)動(dòng)程序支持的技術(shù)
11.8.1 WMI IRP 和系統(tǒng)事件日志
11.8.2 WMI WDM 提供程序日志
11.9 WMI 事件跟蹤
第12 章 編寫(xiě)KMDF 硬件驅(qū)動(dòng)程序
12.1 支持設(shè)備中斷
12.1.1 創(chuàng)建中斷對(duì)象
12.1.2 創(chuàng)建中斷對(duì)象的代碼
12.1.3 啟用和禁用中斷
12.1.4 啟用中斷的代碼
12.1.5 禁用中斷的代碼
12.1.6 啟用中斷后和禁用中斷前的處理
12.2 處理中斷
12.2.1 EvtInterruptIsr 回調(diào)函數(shù)的代碼
12.2.2 中斷的延遲處理
12.3 映射資源
12.3.1 映射資源的代碼
12.3.2 取消映射資源的代碼
第13 章 編寫(xiě)多個(gè)I/O 隊(duì)列程序并編寫(xiě)I/O 程序
13.1 編寫(xiě)I/O 隊(duì)列簡(jiǎn)介
13.2 創(chuàng)建和配置隊(duì)列
13.2.1 為寫(xiě)請(qǐng)求創(chuàng)建隊(duì)列的代碼
13.2.2 為讀請(qǐng)求創(chuàng)建隊(duì)列的代碼
13.2.3 為設(shè)備I/O 控制請(qǐng)求創(chuàng)建隊(duì)列的代碼
13.3 處理并行隊(duì)列的請(qǐng)求
13.3.1 處理I/O 請(qǐng)求的代碼
13.3.2 執(zhí)行緩沖I/O
13.4 將請(qǐng)求轉(zhuǎn)發(fā)給隊(duì)列
13.5 從手動(dòng)隊(duì)列獲取請(qǐng)求
13.6 讀取和寫(xiě)入注冊(cè)表
13.7 監(jiān)視器計(jì)時(shí)器:自管理I/O
13.7.1 啟動(dòng)和重啟自管理I/O設(shè)備
13.7.2 設(shè)備斷電和移除期間的自管理I/O
13.7.3 實(shí)現(xiàn)監(jiān)視器計(jì)時(shí)器
附錄 驅(qū)動(dòng)程序信息網(wǎng)站
參考文獻(xiàn)
章節(jié)摘錄
版權(quán)頁(yè):插圖:WDF的主要設(shè)計(jì)目標(biāo)包括:簡(jiǎn)化即插即用和電源管理的驅(qū)動(dòng)程序支持,在內(nèi)核模式和用戶模式下都能使用即插即用和電源管理。無(wú)縫地處理即插即用事件和電源事件,對(duì)于系統(tǒng)的可靠性和良好用戶體驗(yàn)來(lái)說(shuō)至關(guān)重要,但要想正確實(shí)現(xiàn)也出奇地復(fù)雜。這種復(fù)雜性多數(shù)是因?yàn)轵?qū)動(dòng)程序必須確定處理每個(gè)即插即用或電源管理請(qǐng)求的正確方式。正確的處理取決于驅(qū)動(dòng)程序的位置、設(shè)備棧、設(shè)備當(dāng)前的狀態(tài)、操作系統(tǒng)當(dāng)前的狀態(tài),有時(shí)還取決于設(shè)備或系統(tǒng)即將出現(xiàn)的狀態(tài)變化的特性。這類支持通常需要數(shù)千行代碼來(lái)處理復(fù)雜的、依賴于狀態(tài)的各種情況。大多數(shù)驅(qū)動(dòng)程序都需要編寫(xiě)代碼來(lái)處理那些它們根本不支持的請(qǐng)求。WDF將狀態(tài)跟蹤和決策制定邏輯集中在框架內(nèi),而不再要求在每個(gè)驅(qū)動(dòng)程序中完成這些邏輯。WDF對(duì)即插即用和電源管理的支持基于以下原則。
編輯推薦
Windows 7設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)必備 融匯作者多年開(kāi)發(fā)經(jīng)驗(yàn) 深入底層探究研發(fā)之道
圖書(shū)封面
圖書(shū)標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載
Windows 7設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā) PDF格式下載
250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版