注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機(jī)/網(wǎng)絡(luò)操作系統(tǒng)Windows實用技術(shù):Windows NT與Windows 2000設(shè)備驅(qū)動及開發(fā)

實用技術(shù):Windows NT與Windows 2000設(shè)備驅(qū)動及開發(fā)

實用技術(shù):Windows NT與Windows 2000設(shè)備驅(qū)動及開發(fā)

定 價:¥60.00

作 者: (美)[P.G.威斯卡羅拉]Peter G.Viscarola,(美)[W.A.梅森]W.Anthony Mason著;新智工作室譯;新智工作室譯
出版社: 電子工業(yè)出版社
叢編項:
標(biāo) 簽: Windows

ISBN: 9787505359536 出版時間: 2000-06-01 包裝:
開本: 26cm 頁數(shù): 489 字?jǐn)?shù):  

內(nèi)容簡介

  本書從結(jié)構(gòu)設(shè)計和實用的角度出發(fā),對Windows NT和Windows 2000的標(biāo)準(zhǔn)核心模式驅(qū)動程序做了深刻描述。它不僅解釋了如何設(shè)計和開發(fā)這些驅(qū)動程序,而且介紹了怎樣去編輯、連接和編譯它們。本書將重點集中在標(biāo)準(zhǔn)核心模式驅(qū)動程序上,從簡單的并行或串行端口設(shè)備驅(qū)動到復(fù)雜的以DMA為基礎(chǔ)的實時視頻加密設(shè)備驅(qū)動,本書介紹的標(biāo)準(zhǔn)核心模式驅(qū)動程序都是首屈一指的。全書有四大部分,第一部分介紹了Windows NT的結(jié)構(gòu),第二部分詳述了管理器及設(shè)備驅(qū)動程序,第三部分?jǐn)⑹隽颂鎿Q式NT驅(qū)動程序結(jié)構(gòu),第四部分主要介紹了Windows 2000與NT4.0設(shè)備驅(qū)動程序的差別。

作者簡介

暫缺《實用技術(shù):Windows NT與Windows 2000設(shè)備驅(qū)動及開發(fā)》作者簡介

圖書目錄

第一部分 Windows NT的體系結(jié)構(gòu)
第1章 Windows NT操作系統(tǒng)概述
1.1 Windows NT主要特點
1.1.1 多線程
1.1.2 多任務(wù)
1.1.3 按需分頁的虛擬內(nèi)存
1.1.4 多處理
1.1.5 處理器體系結(jié)構(gòu)獨立性
1.1.6 微核模型
1.1.7 集成化的網(wǎng)絡(luò)功能
1.1.8 多操作系統(tǒng)仿真
1.2 用戶模式程序和環(huán)境子系統(tǒng)
1.2.1 繞過環(huán)境子系統(tǒng)
1.2.2 本地Windows NT API
1.2.3 Win32環(huán)境子系統(tǒng)
1.3 Windows NT可執(zhí)行層
1.3.1 I/O管理器
1.3.2 對象管理器
1.3.3 安全引用監(jiān)視器
1.3.4 進(jìn)程管理器
1.3.5 局部過程調(diào)用工具
1.3.6 內(nèi)存管理器和高速緩存管理器
1.3.7 Win32支持部件
1.4 Windows NT微核
1.5 硬件抽象層
第2章 通過HAL獲得硬件獨立性
2.1 HAL在Windows NT操作系統(tǒng)中的作用
2.2 設(shè)備尋址
2.3 I/O結(jié)構(gòu)
2.3.1 為設(shè)備訪問選擇正確的HAL函數(shù)
2.3.2 HAL緩沖區(qū)函數(shù)
2.4 中斷管理
2.5 DMA(直接內(nèi)存訪問)操作
2.6 其他的HAL工具
2.7 HAL所不處理的處理器結(jié)構(gòu)差別
第3章 虛擬內(nèi)存
3.1 按需分頁的虛擬內(nèi)存
3.1.1 按需分頁虛擬內(nèi)存的原理
3.1.2 內(nèi)存管理器的操作
3.1.3 地址空間分隔和控制
3.1.4 內(nèi)存共享
3.1.5 拷貝—寫入
3.1.6 內(nèi)存映射文件
3.1.7 分頁
3.1.8 地址轉(zhuǎn)換
3.1.9 頁表
3.1.10 從虛擬到物理的地址轉(zhuǎn)換
3.1.11 虛擬地址描述符
3.1.12 環(huán)境
3.2 物理內(nèi)存管理
3.2.1 頁框數(shù)據(jù)庫
3.2.2 頁面恢復(fù)算法
3.2.3 部分對象(Section Object)
3.3 內(nèi)存管理器調(diào)整(Tuning)
3.4 驅(qū)動程序和虛擬內(nèi)存(VM)
3.4.1 內(nèi)存描述符列表(Memory Descriptor Lists)
3.4.2 結(jié)構(gòu)化例外處理(Structured Exception Handling)
第4章 注冊表
4.1 查看和修改注冊表
4.2 注冊表組織結(jié)構(gòu)(Registry Organiztion)
4.2.1 子關(guān)鍵字(Subkey)、值(Value)和數(shù)據(jù)類型
4.2.2 管理寬字符串
4.3 設(shè)備驅(qū)動程序開發(fā)者關(guān)心的注冊表關(guān)鍵字
4.3.1 硬件(HARDWARE)
4.3.2 軟件(SOFTWARE)
4.3.3 SYSTEM子關(guān)鍵字和控制設(shè)置
第5章 分派和調(diào)度
5.1 分派
5.2 調(diào)度
5.2.1 線程優(yōu)先級
5.2.2 優(yōu)先占用
5.2.3 調(diào)度對驅(qū)動程序的影響
第6章 中斷請求等級和DPC(延遲過程調(diào)用)
6.1 了解中斷請求等級(IRQL)
6.1.1 IRQL并不是調(diào)度優(yōu)先級
6.1.2 決定IRQL
6.2 如何使用IRQL
6.2.1 IRQL PASSIVE_LEVEL
6.2.2 IRQL APC_LEVEL
6.2.3 IRQL DISPATCH_LEVEL
6.2.4 DIRQL
6.2.5 IRQL HIGH_LEVEL
6.3 延遲過程調(diào)用(DPC)
6.3.1 DPC對象
6.3.2 DPC的調(diào)用和服務(wù)
6.3.3 DPC對象特點
6.4 DpcForIsr
第7章 多處理器問題
7.1 共享數(shù)據(jù)的問題
7.2 使用鎖定(Lock)來完成序列訪問共享數(shù)據(jù)
7.3 互鎖
7.3.1 運(yùn)行型互鎖
7.3.2 中斷型互鎖
7.3.3 在單處理器系統(tǒng)中運(yùn)行互鎖
7.4 互鎖的問題
第二部分 I/O管理器和設(shè)備驅(qū)動程序的具體細(xì)節(jié)
第8章 I/O結(jié)構(gòu)
8.1 可編程的I/O設(shè)備
8.2 總線控制器DMA設(shè)備
8.2.1 兩類總線控制器DMA設(shè)備
8.2.2 邏輯地址
8.2.3 分散/集中(Scatter/Gather)
8.3 系統(tǒng)DMA設(shè)備
第9章 I/O管理器
9.1 I/O子系統(tǒng)設(shè)計特點
9.2 NT I/O子系統(tǒng)具有一致性并且高度結(jié)構(gòu)化
9.2.1 NT I/O子系統(tǒng)跨平臺可移植性
9.3 NT I/O子系統(tǒng)是可配置的
9.4 NT I/O子系統(tǒng)
9.5 NT I/O子系統(tǒng)是多處理器安全的
9.6 NT I/O子系統(tǒng)是基于對象的
9.6.1 文件對象
9.6.2 驅(qū)動程序?qū)ο?br />9.6.3 設(shè)備對象
9.6.4 中斷對象
9.6.5 適配器對象
9.7 NT I/O子系統(tǒng)是異步的
9.8 NT I/O子系統(tǒng)是包驅(qū)動的
9.9 NT I/O子系統(tǒng)是分層的
第10章 如何描述I/O請求
10.1 IRP結(jié)構(gòu)
10.1.1 IRP固定部分的域
10.1.2 IRP I/O堆棧位置中的域
10.2 數(shù)據(jù)緩沖區(qū)的描述
10.2.1 直接I/O描述數(shù)據(jù)緩沖區(qū)
10.2.2 使用緩沖的I/O描述數(shù)據(jù)緩沖區(qū)
10.2.3 使用非I/O數(shù)據(jù)緩沖區(qū)描述
10.2.4 評價可使用的數(shù)據(jù)緩沖區(qū)描述符選項
10.3 I/O函數(shù)代碼
10.3.1 理解設(shè)備I/O控制函數(shù)(IOCTL)
10.3.2 定義客戶的IOCTL
10.3.3 I/O請求參數(shù)
10.4 處理和運(yùn)行IRP
10.5 案例學(xué)習(xí):當(dāng)非I/O方式成為唯一選擇時
第11章 分層化的驅(qū)動程序模型
11.1 核心模式驅(qū)動程序
11.1.1 文件系統(tǒng)驅(qū)動程序
11.1.2 中級驅(qū)動程序
11.1.3 設(shè)備驅(qū)動程序
11.1.4 微驅(qū)動程序
11.2 中間級和設(shè)備驅(qū)動程序分層化(Layering)
11.3 文件系統(tǒng)驅(qū)動程序分層化
11.4 在堆棧頂部尋找驅(qū)動程序
11.5 了解驅(qū)動程序結(jié)構(gòu)
11.6 分層處理I/O請求
11.6.1 處理IRP本身
11.6.2 將IRP傳遞給較低分層的驅(qū)動程序
11.6.3 創(chuàng)建傳遞到更低等級驅(qū)動程序的附加IRP
11.6.4 等級化驅(qū)動程序模型的優(yōu)勢
11.7 完成通知
11.7.1 在一個完成例程中驅(qū)動程序功能
11.8 在驅(qū)動程序之間的專門知識
11.9 過濾器驅(qū)動程序
11.9.1 過濾器驅(qū)動程序使用指導(dǎo)
11.10 快速I/O
11.11 案例學(xué)習(xí):載入順序的重要性
第12章 驅(qū)動程序結(jié)構(gòu)
12.1 驅(qū)動程序入口點
12.2 理解驅(qū)動程序結(jié)構(gòu)
12.2.1 載入和初始化
12.2.2 設(shè)備驅(qū)動程序的請求處理
12.2.3 中級驅(qū)動程序的請求處理
12.2.4 動態(tài)卸載
12.2.5 請求處理環(huán)境
第13章 驅(qū)動程序入口
13.1 決定設(shè)備配置
13.1.1 資源列表、描述符和部分描述符
13.1.2 查詢系統(tǒng)配置數(shù)據(jù)
13.1.3 查詢總統(tǒng)配置數(shù)據(jù)
13.1.4 查詢注冊表
I3.2 創(chuàng)建設(shè)備對象
13.2.1 設(shè)備擴(kuò)展
13.2.2 設(shè)備名稱
13.2.3 設(shè)備類型和特性
13.2.4 設(shè)備排他性
13.2.5 設(shè)備命名考慮
13.2.6 設(shè)備標(biāo)號鏈接
13.3 獲得硬件資源
13.4 轉(zhuǎn)換總線地址
13.4.1 映射邏輯地址到核心虛擬地址空間
13.4.2 舉例:轉(zhuǎn)換總線地址
13.4.3 總線地址轉(zhuǎn)換的精華
13.5 輸出入口點
13.6 連接中斷和注冊DpcForIsr
13.6.1 轉(zhuǎn)換中斷等級和向量
13.6.2 將驅(qū)動程序ISR與中斷相連
13.6.3 為DpcForIsr初始化DPC對象
13.7 獲得一個適配器對象
13.8 執(zhí)行設(shè)備初始化
13.9 其他DriverEntry操作
13.9.1 中級緩沖區(qū)
13.9.2 DMA設(shè)備的公共緩沖區(qū)
13.9.3 I/O計時器
13.9.4 中級驅(qū)動程序和過濾器驅(qū)動程序
13.10 動態(tài)驅(qū)動程序卸載
第14章 分派入口點
14.1 確認(rèn)請求
14.2 完成請求
14.2.1 提升I/O請求線程優(yōu)先級
14.2.2 I/O管理器如何完成請求
14.3 掛起和排隊請求
14.3.1 系統(tǒng)排隊
14.3.2 驅(qū)動程序排隊
14.3.3 附加設(shè)備隊列
14.4 請求處理
14.4.1 同步處理并完成
14.4.2 異步處理與結(jié)束
14.4.3 結(jié)合同步和異步方法
14.5 關(guān)閉通告
14.6 刪除處理
14.6.1 系統(tǒng)排隊和IRP刪除
14.6.2 驅(qū)動程序排隊和IRP刪除
14.6.3 刪除正在處理的請求
14.7 小結(jié)
第15章 中斷服務(wù)例程和DPC
15.1 中斷服務(wù)例程
15.1.1 ISR的內(nèi)部過程
15.1.2 中斷共享和ISR
15.2 DpcForIsr和CustomDpc
15.2.1 DpcForIsr的登錄入口點
15.2.2 在DpcForIsr中的處理過程
15.3 ISR和DpcForIsr的設(shè)計
15.3.1 ISR和DPC
15.3.2 ISR對DPC例程的延遲
15.4 實例分析
第16章 程序化的I/O數(shù)據(jù)傳送
16.1 處理程序化的數(shù)據(jù)傳送
16.1.1 得到請求者緩沖區(qū)地址
16.1.2 得到請求者緩沖區(qū)長度
16.1.3 通過請求和控制傳輸操縱設(shè)備
16.1.4 在設(shè)備和請求者緩沖區(qū)之間傳遞數(shù)據(jù)
16.2 程序化的I/O驅(qū)動程序?qū)嵗?br />16.2.1 分派例程和StartIo例程
16.2.2 中斷服務(wù)例程
16.2.3 DPC例程
16.2.4 例中驅(qū)動程序的DPC與ISR之間的關(guān)系
16.3 程序化的I/O設(shè)備驅(qū)動程序設(shè)計中的一些問題
16.3.1 將設(shè)備內(nèi)存映射到用戶空間
16.3.2 輪詢
16.3.3 同步驅(qū)動程序的實現(xiàn)
第17章 DMA數(shù)據(jù)傳輸
17.1 DMA數(shù)據(jù)傳輸處理
17.2 適配器對象
17.3 映射寄存器
17.4 DMA設(shè)備結(jié)構(gòu)
17.4.1 基于數(shù)據(jù)包的DMA
17.4.2 公用緩存DMA
17.4.3 基于數(shù)據(jù)包的DMA和公用緩沖區(qū)DMA的比較
17.5 基于數(shù)據(jù)包的DMA傳輸
17.5.1 準(zhǔn)備傳輸
17.5.2 對設(shè)備編程
17.5.3 結(jié)束傳輸
17.5.4 延續(xù)驅(qū)動程序執(zhí)行
17.6 公用緩沖區(qū)DMA傳輸
17.6.1 分配公用緩沖區(qū)
17.6.7 執(zhí)行傳輸
17.6.3 延續(xù)驅(qū)動程序的執(zhí)行
17.7 基于數(shù)據(jù)包的DMA驅(qū)動程序例子
17.7.1 分派程序
17.7.2 準(zhǔn)備傳輸
17.7.3 對設(shè)備編程
17.7.4 中斷服務(wù)程序
17.7.5 結(jié)束傳輸并且延續(xù)程序的執(zhí)行
17.8 DMA設(shè)備驅(qū)動程序的設(shè)計問題
17.8.1 對齊限制
17.8.2 系統(tǒng)DMA
第18章 驅(qū)動程序的生成和調(diào)試
18.1 建立驅(qū)動程序開發(fā)環(huán)境
18.1.1 以下將詳細(xì)討論上述步驟
18.1.2 建立系統(tǒng)
18.1.3 設(shè)置調(diào)試
18.2 生成驅(qū)動程序
18.3 驅(qū)動程序調(diào)試
18.3.1 核心調(diào)試器擴(kuò)展
18.4 調(diào)試和測試的提示和技巧
18.4.1 在WinDbg中顯示輸出
18.4.2 在哪里生成你的項目
18.4.3 在你的測試系統(tǒng)上安裝多種系統(tǒng)映相
18.4.4 提高串口的速度
18.4.5 用SysRq鍵中止測試系統(tǒng)
18.4.6 斷定假設(shè)
18.4.7 ASSERT()只能工作在受限結(jié)構(gòu)上
18.4.8 定義你自己的ASSERT()宏
18.4.9 在MP系統(tǒng)上測試
18.4.10 使用DDK提供的工具
18.4.11 用性能監(jiān)視器檢查你的驅(qū)動程序
18.4.12 打開池檢查
18.4.13 保持最新
18.4.14 從世界獲取幫助
18.5 藍(lán)屏內(nèi)幕
18.5.1 藍(lán)屏格式
18.5.2 報告或解釋藍(lán)屏
18.6 崩潰堆文件
第19章 創(chuàng)建一個完全的驅(qū)動程序
19.1 驅(qū)動程序錯誤記錄
19.1.1 定義錯誤信息
19.1.2 分配錯誤記錄包
19.1.3 往事件日志中寫包
19.1.4 激活信息編譯器
19.1.5 將驅(qū)動程序注冊為事件記錄源
19.2 定義驅(qū)動程序版本資源
19.2.1 從Microsoft提供的模板定義.RC文件
19.2.2 創(chuàng)建你自己的資源定義文件
第20章 安裝和啟動驅(qū)動程序
20.1 驅(qū)動程序如何啟動
20.1.1 驅(qū)動程序服務(wù)項
20.2 驅(qū)動程序特定的和設(shè)備特定的參數(shù)
20.3 驅(qū)動程序安裝
20.3.1 文本設(shè)置
20.3.2 GUI設(shè)置
20.3.3 自定義設(shè)置
第三部分 備用的NT驅(qū)動程序結(jié)構(gòu)
第21章 文件系統(tǒng)驅(qū)動程序
21.1 文件系統(tǒng)驅(qū)動程序特性
21.1.1 文件系統(tǒng)驅(qū)動程序在請求線程的環(huán)境中被調(diào)用
21.1.2 文件系統(tǒng)驅(qū)動程序同虛擬內(nèi)存(VM)子系統(tǒng)緊密地集成在一起
21.1.3 文件系統(tǒng)驅(qū)動程序與I/O和對象管理器聯(lián)系緊密
21.2 更多地了解關(guān)于開發(fā)文件系統(tǒng)驅(qū)動程序
第22章 視頻微端口驅(qū)動程序
22.1 視頻端口/微端口驅(qū)動程序
22.1.1 視頻端口驅(qū)動程序
22.1.2 視頻微端口驅(qū)動程序
22.2 顯示驅(qū)動程序
22.2.1 設(shè)備顯示接口(DDI)驅(qū)動程序
22.3 DMA(直接內(nèi)存訪問)和視頻顯示驅(qū)動程序
22.4 更深入地了解開發(fā)視頻顯示驅(qū)動程序
第23章 SCSI微端口驅(qū)動程序
23.1 SCSI微端口驅(qū)動程序特性
23.2 SCSI微端口驅(qū)動程序結(jié)構(gòu)
23.2.1 初始化工作
23.2.2 請求的初始化
23.2.3 中斷服務(wù)
23.3 更深入地了解關(guān)于開發(fā)SCSI微端口驅(qū)動程序
第24章 NDIS微端口驅(qū)動程序
24.1 標(biāo)準(zhǔn)的NDIS家族
24.2 Windows NT網(wǎng)絡(luò)結(jié)構(gòu)
24.3 NDIS驅(qū)動程序類型和NDIS庫
24.4 NDIS LAN微端口驅(qū)動程序
24.4.1 初始化
24.4.2 傳輸處理
24.4.3 中斷和DPC處理
24.4.4 傳輸終結(jié)
24.4.5 消息接收
24.4.6 串行化
24.5 更深入地了解如何開發(fā)NDIS驅(qū)動程序
第四部分 附錄
附錄A Windows NT狀態(tài)代碼/Win32錯誤代碼
附錄B 關(guān)于驅(qū)動程序編寫者信息的資料來源
本書的網(wǎng)頁
期刊和雜志
NT內(nèi)幕雜志
Windows NT雜志
Dobb’s博士的期刊
Microsoft的知識基地
新聞組,郵件列表和一些最常遇到的問題
NTDEV郵件列表
NTFSD郵件列表
DDK-L郵件列表
關(guān)于Windows NT核心模式驅(qū)動程序最經(jīng)常問到的問題
研討會
OSR開放系統(tǒng)資源公司
David Solomon專家研討會
附錄C Windows 2000的一些變化
在Windows 2000上的NT 4.0設(shè)備驅(qū)動程序
驅(qū)動程序登錄的變化
Windows 2000的驅(qū)動程序入口點
添加設(shè)備入口點
處理即插即用IRP
DMA實現(xiàn)上的變化
電源管理
IRP_MN_QUERY_POWER
IRP_MN_SET_POWER
IRP_MN_WAIT_WAKE

本目錄推薦

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