出版時間:2000-5 出版社:清華大學(xué)出版社 作者:孫守閣 徐勇 頁數(shù):214
Tag標(biāo)簽:無
內(nèi)容概要
本書分為三個部分。第一部分主要講怎樣用DOS的方法與設(shè)備驅(qū)動程序,該部分的驅(qū)動程序被封裝為DLL形式。第二部分講怎樣寫 Windows 的虛擬設(shè)備驅(qū)動程序。第三部分介紹 Windows 系統(tǒng)下標(biāo)準(zhǔn)模式設(shè)備驅(qū)動程序的編寫方法。
書籍目錄
第1章概述
1.1本書的讀者對象
1.1.1哪些人應(yīng)該讀這本書
1.1.2哪些人不能讀這本書
1.2應(yīng)用平臺
1.3本書的結(jié)構(gòu)
1.4學(xué)習(xí)的方法
1.5需要的工具
第一部分 驅(qū)動程序基礎(chǔ)
第2章基礎(chǔ)知識
2.1驅(qū)動程序的定義
2.2特權(quán)封裝
2.3非特權(quán)封裝
2.4 DLL與靜態(tài)庫的比較
2.5為什么要把驅(qū)動程序封裝為DLL
2.6應(yīng)用程序與DLL比較
2.6.1 DLL和棧段
2.6.2 DLL和數(shù)據(jù)段
2.6.3 DLL和動態(tài)分配內(nèi)存的主權(quán)
2.6.4 DLL的初始化和終止
2.7 DLL的函數(shù)要求
2.8框架驅(qū)動程序
2.9建立框架驅(qū)動程序
2.10 DLL需要應(yīng)用程序
2.11驅(qū)動程序的調(diào)試工具
2.12總結(jié)
第 3 章與硬件相連接
3.1端日映射和內(nèi)存映射的比較
3.1.1訪問瑞口映射硬件
3.1.2訪問內(nèi)存映射硬件
3.1.3兩步驟地址轉(zhuǎn)換過程
3.1.4對1 MB以下的設(shè)備映射使用預(yù)定義的選擇器
3.2端口映射例子程序
3.2.1例子程序 3.1
3.2.2例子程序 3.2
3.2.3例子、序3.3
3.2.4例子程序 3.4
3.2.5例子程序 3.5
3.3驅(qū)動程序設(shè)計(jì)概述
3.4驅(qū)動程序例子
3.5內(nèi)存映射的方案
3.6先進(jìn)內(nèi)存的問題
3.7設(shè)備映射大于1 MB需要DPMI服務(wù)
3.8總結(jié)
第4章中斷方式設(shè)備驅(qū)動程序
4.1 Windows虛擬內(nèi)存
4.2 實(shí)現(xiàn)方法
4.3什么是可以丟棄的
4.4為什么整理內(nèi)存
4.5安全中斷驅(qū)動程序內(nèi)存需求
4.5.1固定的原因
4.5.2不可丟棄的原因
4.5.3頁面鎖定的原因
4.6中斷安全的代碼和數(shù)據(jù)
4.6.1 FIXED何時是真正固定的
4.6.2動態(tài)分配中斷安全的緩沖區(qū)
第二部分 虛擬驅(qū)動程序簡介
第5章Windows的虛擬世界
5.1虛擬機(jī)是什么
5.2 Windows的執(zhí)行環(huán)境
5.2.1管理程序
5.2.2 Wndows應(yīng)用程序
5.2.3 DOS應(yīng)用程序
5.3 Wndows地址空間
5.3.1線性地址空間
5.3.2線性地址空間和物理地址空間
5.3.3邏輯、線性和物理地址空間
5.4這意味著什么
5.5實(shí)現(xiàn)虛擬機(jī)
5.5.1捕獲I/O操作
5.5.2捕獲內(nèi)存操作
5.5.3捕獲中斷和異常事件
5.6 V86模式簡介
5.7總結(jié)
第6章虛擬驅(qū)動程序簡介
6.1 VxD的基本結(jié)構(gòu)
6.2設(shè)備描述器部件
6.3支持?jǐn)?shù)據(jù)結(jié)構(gòu)
6.4事件的標(biāo)志信息
6.5保護(hù)模式初始化
6.6創(chuàng)建VxD的工具
6.7總結(jié)
第7章設(shè)備選優(yōu)VxD
7.1 VMM和處理器的異常事件
7.2端口所有權(quán)
7.2.1 PORTTRAP(端口訪問)程序例子
7.2.2仿真多字節(jié)I/O
7.2.3安裝和使用PORTTRAP
7.3例子PAGETRAP
7.3.1初始化例程
7.3.2錯誤處理器例程
7.3.3結(jié)束處理器
7.3.4測試PAGETRAP
7.4總結(jié)
第8章服務(wù)硬件中斷的VxD
8.1中斷和VMM
8.1.1中斷反射的過程
8.1.2哪個VM獲得中斷
8.1.3擴(kuò)展模式中的中斷執(zhí)行時間
8.2 VxD通信
8.2.1傳遞參數(shù)
8.2.2從應(yīng)用程序調(diào)用VxD的API
8.2.3硬件中斷處理VxD
8.2.4 API調(diào)用服務(wù)
8.3硬件中斷反射VxD
8.3.1目調(diào)Mast
8.3.2目調(diào)Hw_Int
8.3.3回調(diào)EOI
8.3.4回調(diào)Virt_Int和IRET
8.4總結(jié)
第三部分特殊技術(shù)
第9章第0層處理器縮短響應(yīng)時間
9.1替換 VxD
9.1.1安裝
9.1.2初始化BIMODAL_INT STRUC
9.2 注冊處理器
9.2.1 VPICD初始化字段
9.1.2處理中斷
9.3編寫處理器程序
9.3.1為什么沒有堆棧變量
9.3.2一種更糟的情況
9.4總結(jié)
第10章雙模態(tài)驅(qū)動程序
10.1新的雙模態(tài)驅(qū)動程序綜述
10.1.1新的雙模態(tài)驅(qū)動程序代碼
10.1.2回調(diào)細(xì)節(jié)
10.2總結(jié)
第11章編寫使用DMA的驅(qū)動程序
11.1 DMA緩沖區(qū)的要求
11.1.1物理上毗鄰
11.1.2固定的和頁面鎖定
11.1.3定位在64KB的邊界上
11.1.4怎樣分配DMA緩沖區(qū)
11.2 Windows下DMA的DOS應(yīng)用程序
11.3 DMA的Wndows應(yīng)用程序可使用這個知識
11.3.1使用VDS緩沖區(qū)更好
11.3.2最佳的解決方案――助手VxD
11.4 DMABUF的API
11.5使用助手VxD――USEAPI.C
11.6總結(jié)
第12章使用實(shí)模式服務(wù)
12. 1關(guān)于DOS設(shè)備驅(qū)動程序
12.1.1對IOCTL的專門處理
12.1.2介紹DOS TSR
12.1.3通過緩沖區(qū)傳遞數(shù)據(jù)
12.1.4 TSR調(diào)用Windows應(yīng)用程序
12.2增強(qiáng)模式中的回調(diào)
12.3編程細(xì)節(jié)
12.4總結(jié)
第13章編寫標(biāo)準(zhǔn)模式的驅(qū)動程序
13.1基本概念
13.1.1硬件的端口映射
13.1.2內(nèi)存映射的硬件
13.1.3標(biāo)準(zhǔn)模式中的選擇器
13.2標(biāo)準(zhǔn)模式中的中斷
13.3從保護(hù)模式和實(shí)模式中獲取中斷
13.4分離實(shí)模式控制器和保護(hù)模式控制器
13.5總結(jié)
第14章定時器和軟件中斷
14.1定時器
14.1.1使用SetTimer()
14. 1.2調(diào)用INT 1CH和INT 8H
14.1.3不要依賴于每秒18.2次
14.1.4使用timeSetEvent()
14.1.5使用VxD
14.1.6不要使用GetTickCount()
14.1.7使用BIOS的周期計(jì)數(shù)或者是timeGetTime()
14.2軟件中斷
14.2.1連接到軟件中斷
14.2.2用VxD捕獲軟件中斷
14.3編程細(xì)節(jié)
14.4總結(jié)
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載
WINDOWS 設(shè)備驅(qū)動程序技術(shù)內(nèi)幕 PDF格式下載