注冊 | 登錄讀書好,好讀書,讀好書!
讀書網-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網絡操作系統(tǒng)WindowsWindows 2000設備驅動程序設計指南

Windows 2000設備驅動程序設計指南

Windows 2000設備驅動程序設計指南

定 價:¥58.00

作 者: (美)Art Baker,(美)Jerry Lozano著;施諾等譯
出版社: 機械工業(yè)出版社
叢編項: 軟件開發(fā)技術叢書
標 簽: Windows

購買這本書可以去


ISBN: 9787111092834 出版時間: 2001-01-01 包裝:
開本: 24cm+光盤1片 頁數: 359頁 字數:  

內容簡介

  本書全面講述了驅動程序模型、內核模式編程和硬件接口等方面的知識,可作為驅動程序開發(fā)的自學教材使用。全書共分17章和三個附錄,第1-5章討論編寫設備驅動程序所需的基礎知識。包括Windows 2000體系結構,Windows 2000 I/O管理程序等內容。第 6-13章是本書的核心內容,討論了Windows 2000驅動程序開發(fā)的所有內容。第14-15章討論設備驅動程序構造方面的高級主題,包括使用系統(tǒng)線程、分層、過濾和驅動程序類別等。最后兩章討論驅動程序的安裝和調試。附錄部分討論了驅動程序開發(fā)所需的參考信息,列出了Windows 2000符號文件安裝、故障檢驗碼等內容。

作者簡介

暫缺《Windows 2000設備驅動程序設計指南》作者簡介

圖書目錄

譯者序

前言
第1章 Windows 2000驅動程序概述
1.1 總的系統(tǒng)體系結構
1.1.1 Windows 2000的設計目標
1.1.2 Windows 2000中的硬件特權層
1.1.3 可移植性
1.1.4 可擴展性
1.1.5 性能
1.1.6 執(zhí)行程序組件
1.2 內核模式I/O組件
1.2.1 I/O子系統(tǒng)的設計目標
1.2.2 Windows 2000中驅動程序的種類
1.3 特殊的驅動程序結構
1.3.1 視頻驅動程序
1.3.2 打印機驅動程序
1.3.3 多媒體驅動程序
1.3.4 網絡驅動程序
1.4 小結
第2章 硬件環(huán)境
2.1 硬件基礎
2.1.1 設備寄存器
2.1.2 訪問設備寄存器
2.1.3 設備中斷
2.1.4 數據傳輸機制
2.1.5 DMA機制
2.1.6 設備專用內存
2.1.7 自動識別和自動配置
2.2 總線和Windows 2000
2.2.1 ISA:工業(yè)標準體系結構
2.2.2 EISA:擴展工業(yè)標準體系結構
2.2.3 PCI:外設部件互連標準
2.2.4 USB:通用串行總線架構
2.2.5 IEEE 1394:Firewire總線
2.2.6 PC卡(PCMCIA)總線
2.3 硬件使用心得
2.3.1 了解硬件
2.3.2 使用硬件智能
2.3.3 測試硬件
2.4 小結
第3章 內核模式I/O處理技術
3.1 內核模式代碼如何執(zhí)行
3.1.1 陷餅或者異常環(huán)境
3.1.2 中斷環(huán)境
3.1.3 內核模式線程環(huán)境
3.2 Windows 2000使用的中斷優(yōu)先級
3.2.1 CPU優(yōu)先級分層
3.2.2 中斷處理順序
3.2.3 軟件產生的中斷
3.3 延遲過程調用(DPC)
3.3.1 DPC運行
3.3.2 DPC行為
3.4 用戶緩沖區(qū)訪問
3.5 內核模式驅動程序結構
3.5.1 驅動程序初始化和清除例程
3.5.2 I/O系統(tǒng)服務調度例程
3.5.3 數據傳輸例程
3.5.4 資源同步回調
3.5.5 其他驅動程序例程
3.6 I/O處理順序
3.6.1 I/O管理程序須處理
3.6.2 設備驅動程序預處理
3.6.3 設備啟動和中斷服務
3.6.4 驅動程序后處理
3.6.5 UO管理程序后處理
3.7 小結
第4章 驅動程序和內核模式對象
4.1 數據對象和Windows 2000
4.1.1 Windows 2000和OOP
4.1.2 Windows 2000對象和Win32對象
4.2 I/O請求包(IRP)
4.2.1 IRP布局
4.2.2 操縱IRP
4.3 驅動程序對象
4.4 設備對象和設備擴展
4.4.1 設備對象布局
4.4.2 操縱設備對象
4.4.3 設備擴展
4.5 控制器對象和控制器擴展
4.5.1 控制器對象布局
4.5.2 操縱控制器對象
4.5.3 控制器擴展
4.6 適配器對象
4.6.1 適配器對象布局
4.6.2 操縱適配器對象
4.7 中斷對象
4.7.1 中斷對象布局
4.7.2 操縱中斷對象
4.8 小結
第5章 一般開發(fā)問題
5.1 驅動程序設計策略
5.1.1 使用形式化設計方法
5.1.2 使用增量開發(fā)方法
5.1.3 檢查和使用示例驅動程序
5.2 編碼規(guī)范和技術
5.2.1 一般性建議
5.2.2 命名規(guī)范
5.2.3 頭文件
5.2.4 狀態(tài)返回值
5.2.5 Windows 2000驅動程序支持例程
5.2.6 丟棄初始化例程
5.2.7 控制驅動程序分頁
5.3 驅動程序存儲分配
5.3.1 驅動程序可用的內存
5.3.2 使用內核堆棧
5.3.3 使用地區(qū)域
5.3.4 內存再分配的系統(tǒng)支持
5.4 Unicode字符串
5.4.1 Unicode字符串數據類型
5.4.2 使用Unicode
5.5 中斷同步
5.5.1 問題
5.5.2 中斷阻止
5.5.3 阻止中斷的規(guī)則
5.5.4 使用延遲過程調用進行同步
5.6 多個CPU同步
5.6.1 自旅鎖如何工作
5.6.2 使用自旅鎖
5.6.3 使用自旅鎖的規(guī)則
5.7 鏈表
5.7.1 單向鏈表
5.7.2 雙向鏈表
5.7.3 刪除鏈表中的塊
5.8 小結
第6章 初始化和清除例程
6.1 編寫DriverEntry例程
6.1.1 執(zhí)行環(huán)境
6.1.2 DriverEntry例程進行的工作
6.1.3 聲明DriverEntry入口點
6.1.4 建立設備對象
6.1.5 選擇緩沖策略
6.1.6 設備名字
6.2 代碼示例:驅動程序初始化
6.2.1 DriverEntry
6.2.2 CreateDevice
6.3 編寫Reinitialize例程
6.3.1 執(zhí)行環(huán)境
6.3.2 Reinitialize例程進行的工作
6.4 編寫Unload例程
6.4.1 執(zhí)行環(huán)境
6.4.2 Unload例程進行的工作
6.5 代碼示例:驅動程序卸載
6.6 編寫Shutdown例程
6.6.1 執(zhí)行環(huán)境
6.6.2 Shudown例程進行的工作
6.6.3 啟用關閉通知
6.7 測試驗動程序
6.7.1 測試過程
6.7.2 VisualC++設備驅動程序AppWizard向導
6.7.3 Windows 2000 DDK
6.7.4 驅動程序編譯結果
6.7.5 手動安裝內核模式驅動程序
6.7.6 裝載驅動程序
6.7.7 Windows 2000計算機管理控制臺
6.7.8 WINOBJ實用程序
6.8 小結
第7章 驅動程序Dispatch例程
7.1 聲明驅動程序Dispatsh例程
7.1.1 I/O請求的調度機制
7.1.2 啟用特定的函數代碼
7.1.3 確定支持哪些國數代碼
7.2 編寫驅動程序Dispatch例程
7.2.1 執(zhí)行環(huán)境
7.2.2 Dispatch例程進行的工作
7.2.3 退出Dispatch例程
7.3 處理讀寫請求
7.4 代碼示例:回送設備
7.5 擴展Dispatch接口
7.5.1 定義專用的IOCTL值
7.5.2 IOCTL參數傳遞方法
7.5.3 編寫IOCTL頭文件
7.5.4 處理IOCTL請求
7.5.5 管理IOCTL緩沖區(qū)
7.6 測試驅動程序Dispatch例程
7.6.1 測試步驟
7.6.2 測試程序示例
7.7 小結
第8章 中斷驅動的I/O
8.1 程控I/O工作原理
8.1.1 程控I/O期間發(fā)生的事情
8.1.2 同步驅動程序例程
8.2 驅動程序初始化和清除工作
8.2.1 初始化Start I/O入口點
8.2.2 初始化DpcForIsr例程
8.2.3 與中斷源相連接
8.2.4 斷開與中斷源的連接
8.3 編寫Start I/O例程
8.3.1 執(zhí)行環(huán)境
8.3.2 Start I/O例程進行的工作
8.4 編寫中斷服務例程(ISR)
8.4.1 執(zhí)行環(huán)境
8.4.2 中斷服務例程進行的工作
8.5 編寫DpcForIsr例程
8.5.1 執(zhí)行環(huán)境
8.5.2 DpcForIsr例程進行的工作
8.5.3 優(yōu)先權增加
8.6 一些硬件:并行端口
8.6.1 并行端口進行的工作
8.6.2 設備寄存器
8.6.3 中斷行為
8.6.4 并行端口的回送連接器
8.7 代碼示例:并行端口回送驅動程序
8.7.1 驅動程序目的
8.7.2 Driver.h
8.7.3 Driver.cpp
8.8 測試并行端口回送驅動程序
8.9 小結
第9章 硬件初始化
9.1 即插即用體系結構:簡要歷史回顧
9.1.1 即插即用結構的目標
9.1.2 即插即用結構的組成部分
9.2 遺留驅動程序注冊表的作用
9.3 探測即插即用設備
9.4 驅動程序分層在即插即用結構中的作用
9.5 新的WDM IRP Dispatch函數
9.5.1 要求的即插即用IRP
9.5.2 PDO即插即用IRP
9.5.3 傳遞即括即用請求
9.5.4 I/O完成例程
9.5.5 總線驅動程序即招即用請求
9.6 設備列舉
9.6.1 硬件資源描述符
9.6.2 在驅動程序中使用硬件資源
9.7 設備接口
9.7.1 接口定義
9.7.2 接口構造
9.7.3 接口引用計數
9.7.4 注冊和啟用一個接口
9.8 代碼示例:簡單的即插即用驅動程序
9.9 小結
第10章 電源管理
10.1 熱插拔設備
10.1.1 總線考慮
10.1.2 設備考慮
10.2 OnNow規(guī)范
10.2.1 電源狀態(tài)
10.2 2 電源策略
10.2.3 電源狀態(tài)矩陣
10.2.4 電源狀態(tài)更改
10.3 喚醒請求
10.4 電源管理問題
10.4.1 空閑管理
10.4.2 電源管理的用戶接口
10.5 小結
第11章 計時器
11.1 處理設備超時
11.1.1 I/O計時器例程工作原理
11.1.2 如何捕獲設備超時條件
11.2 代碼示例:捕獲設備超時
11.2.1 設備擴展補充
11.2.2 AddDevice補充
11.2.3 更改Dispatsh例程
11.2.4 StartIo更改
11.2.5 ISR更改
11.2.6 I/O計時器回調例程
11.3 管理沒有中斷的設備
11.3.1 使用輪詢式設備
11.3.2 CustomTimerDpc例程工作原理
11.3.3 如何建立CustomTimerDpc例程
11.3.4 如何規(guī)定終止時間
11.3.5 CustomTimerDpc例程的其他用法
11.4 代碼示例:基于計時器的驅動程序
11.4.1 設備擴展補充
11.4.2 AddDevice修改
11.4.3 TransmitBytes更改
11.4.4 PoilingTimerDpc例程
11.5 小結
第12章 DMA驅動程序
12.1 Windows 2000中DMA的工作原理
12.1.1 用適配器對象隱藏DMA硬件變化
12.1.2 分散/集中問題
12.1.3 內存描述符列表
12.1.4 維護高速緩存相關性
12.1.5 基于包的DMA和通用緩沖區(qū)DMA
12.1.6 Windows 2000 DMA結構的局限性
12.2 操作適配器對象
12.2.1 查找正確的適配器對象
12.2.2 獲取和釋放適配器對象
12.2.3 設置DMA硬件
12.2.4 刷新適配器對象高速緩存
12.3 編寫基于包的從屬DMA驅動程序
12.3.1 基于包的從屬DMA工作原理
12.3.2 分割DMA傳輸
12.4 代碼示例:基于包的從屬DMA驅動程序
12.4.1 DRIVER.H
12.4.2 GetDmaInfo例程
12.4.3 Start I/O更改
12.4.4 AdapterControl(適配器控制)例程
12.4.5 DpcForIsr例程
12.5 編寫基于包的總線主控器DMA驅動程序
12.5.1 建立總線主控器硬件
12.5.2 支持分散/集中的硬件
12.5.3 用MapTransfer建立分散/集中列表
12.6 編寫通用緩沖區(qū)從屬DMA驅動程序
12.6.1 分配一個通用緩沖區(qū)
12.6.2 使用通用緩沖區(qū)從屬DMA維護吞吐量
12.7 編寫通用緩沖區(qū)總線主控器DMA驅動程序
12.8 小結
第13章 Windows管理和設備測試
13.1 WMI:業(yè)界藍圖
13.2 WMI體系結構
13.2.1 在WDM驅動程序中提供WMI支持
13.2.2 MOF語法
13.2.3 MOF類定義示例
13.2.4 編譯MOF源文件
13.2.5 處理WMI IRP請求
13.2.6 類和實例
13.2.7 WMILIB
13.3 WMI概述
13.4 常規(guī)驅動程序事件記錄
13.4.1 事件記錄工作原理
13.4.2 操作消息
13.4.3 編寫消息定義文件
13.4.4 一個簡單的例子
13.4.5 編譯消息定義文件
13.4.6 把消息資源添加到驅動程序
13.4.7 把驅動程序注冊為事件源
13.4.8 產生日志項
13.4.9 分配錯誤日志包
13.4.10 記錄錯誤
13.5 小結
第14章 系統(tǒng)線程
14.1 系統(tǒng)線程的定義和使用
14.1.1 使用線程的時機
14.1.2 建立和終止系統(tǒng)線程
14.1.3 管理線程優(yōu)先權
14.1.4 系統(tǒng)工作者線程
14.2 線程同步
14.2.1 時間同步
14.2.2 一般同步
14.3 使用調度程序對象
14.3.1 事件對象
14.3.2 在驅動程序間共享事件
14.3.3 互斥對象
14.3.4 信號量對象
14.3.5 計時器對象
14.3.6 線程對象
14.3.7 直斥對象的變體
14.3.8 同步死鎖
14.4 代碼示例:基干線程的驅動程序
14.4.1 驅動程序工作原理
14.4.2 DEVICE_EXTENSION結構
14.4.3 AddDevice函數
14.4.4 InspatchReadWrite函數
14.4.5 Thread.cpp
14.4.6 Transfer.c
14.5 小結
第15章 分層驅動程序
15.1 中級驅動程序綜述
15.1.1 中級驅動程序定義
15.1.2 使用分層體系結構的時機
15.2 編寫分層驅動程序
15.2.1 分層驅動程序工作原理
15.2.2 分層驅動程序中的初始化和清除工作
15.2.3 代碼段:連接到另一個驅動程序
15.2.4 分層驅動程序的其他初始化問題
15.2.5 分層驅動程序中的I/O請求處理技術
15.2.6 代碼段:調用一個低級驅動程序
15.3 編寫I/O完成例程
15.3.1 請求I/O完成例程回調
15.3.2 執(zhí)行環(huán)境
15.3.3 I/O完成例程進行的工作
15.3.4 代碼段:I/O完成例程
15.4 分配新增的IRP
15.4.1 IRP的I/O堆棧再訪問
15.4.2 控制IRP堆棧的大小
15.4.3 用IoBuildSynchronousFsdRequest建立IRP
15.4.4 用IoBalldAsynchronousFsdRequest建立IRP
15.4.5 用IoBuildDeviceloControlRequest建立IRP
15.4.6 從零開始建立IRP
15.4.7 建立低級驅動程序的緩沖區(qū)
15.4.8 跟蹤驅動程序分配的IRP
15.5 編寫過濾器驅動程序
15.5.1 過濾器驅動程序工作原理
15.5.2 過濾器驅動程序中的初始化和清除工作
15.5.3 使連接透明
15.6 代碼示例:過濾器驅動程序
15.6.1 DEVICE_EXTENSION結構
15.6.2 DriverEntry函數
15.6.3 AddDevice函數
15.6.4 OverriddenDispatchWrite函數
15.6.5 OverriddenDispatchDeviceIoControl函數
15.6.6 DispatchPassThru函數
15.6.7 I/O完成例程
15.7 編寫緊耦合驅動程序
15.7.1 緊耦合驅動程序工作原理
15.7.2 緊耦合驅動程序中的初始化和清除工作
15.8 小結
第16章 驅動程序安裝
16.1 驅動程序安裝概述
16.2 使用INF文件自動安裝
16.2.1 INF文件結構
16.2.2 Version節(jié)
16.2.3 Manufacturers節(jié)
16.2.4 Models節(jié)
16.2.5 DDInstall節(jié)
16.2.6 CopyFiles節(jié)
16.2.7 AddReg節(jié)
16.2.8 SourceDisksNames節(jié)
16.2.9 SourceDisksFiles節(jié)
16.3 使用驅動程序的INF文件
16.3.1 手動安裝
16.3.2 自動安裝
16.3.3 添加/刪除硬件向導
16.3.4 類別名字和設備ID
16.3.5 定制安裝
16.4 控制驅動程序裝載順序
16.5 驅動程序數字簽名
16.5.1 Microsoft驗證驅動程序的原因
16.5.2 數字簽名
16.6 小結
第17章 測試和調試驅動程序
17.1 驅動程序測試準則
17.1.1 測試驗動程序的常規(guī)方法
17.1.2 Microsoft硬件兼容性測試
17.2 驅動程序失敗的原因
17.2.1 驅動程序錯誤分類
17.2.2 重演驅動程序錯誤
17.2.3 防錯性編碼策略
17.2.4 跟蹤驅動程序錯誤
17.3 閱讀故障屏幕
17.3.1 系統(tǒng)崩潰時發(fā)生什么
17.3.2 藍色死機屏幕
17.4 WinDbg綜述
17.4.1 源代碼調試的關鍵
17.4.2 一些WinDbg命令
17.5 故障轉儲分析
17.5.1 分析的目標
17.5.2 開始分析
17.5.3 跟蹤難棧
17.5.4 間接調查方法
17.6 交互式調試
17.6.1 啟動和停止一個調試對話
17.6.2 設置斷點
17.6.3 設置硬斷點
17.6.4 中間輸出
17.7 編寫WinDbg擴展
17.7.1 WinDbg擴展工作原理
17.7.2 初始化和版本檢查函數
17.7.3 編寫擴展命令
17.7.4 WinDbg助手函數
17.7.5 建立并使用擴展DLL
17.8 代碼示例:WinDbg擴展
17.9 其他調試技術
17.9.1 把已經調試的代碼留在驅動程序中
17.9.2 捕獲不正確的假設
17.9.3 使用故障檢驗回調函數
17.9.4 捕獲內存泄漏
17.9.5 使用計數器、位和緩沖區(qū)
17.10 小結
附錄A 驅動程序調試環(huán)境
附錄B 故障檢驗碼
附錄C 編譯驅動程序
附錄D 關于CD-ROM

本目錄推薦

掃描二維碼
Copyright ? 讀書網 ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號