欢迎您来到懒之才-站长的分享平台!   学会偷懒,并懒出境界是提高工作效率最有效的方法!
首页 > 教程文档 > 操作系统&服务器 > Windows设备驱动程序技术内幕[PDF][7.79MB]

Windows设备驱动程序技术内幕[PDF][7.79MB]

2019-05-27 975 收藏 0 赞一个 0 真差劲 0 去评论 去下载

内容简介

Wndows设备驱动程序技术内幕一书,详细讲解了设备驱动程序的原理及实现方法,并例举了大量的程序实例,便于读者学习和掌握。

本书分为三个部分。第一部分主要讲怎样用DOS的方法写设备驱动程序,该部分的驱动程序被封装为DLL形式。第二部分讲怎样写Windows的虚拟设备驱动程序(Vth)。第三部分介绍Wndows系统下标准模式设备驱动程序的编写方法。

本书是一一本技术性较强的工具书,它主要针对有一定计算机基础的程序开发者和硬件设计者,同时也适应需要进一步了解计算机应用的读者。

现在市面上关于Windows编程的书很多,但是关于Windows设备驱动程序编程的书很少,而关于虚拟设备驱动程序的编程就更少了。在工作中往往需要对标准的硬件设备进行操作,有时还需要使用设备驱动程序对物理设备进行操作,这就需要编程人员掌握这些方面的知识,能够设计出自己需要的设备驱动程序。

本书主要介绍了3种设备驱动程序的编写方法。全书分为3部分,每一部分先介绍一些基础知识,再进行详细内容的讲述。各部分的内容都是循序渐进的,便于学习和掌握。

第一部分主要讲述怎样用DOS的方法编写设备驱动程序。该部分的驱动程序被封装为DLL形式,可以被Windows应用程序访问,但不能被DOS应用程序访问。

第二部分讲述怎样编写Windows的虚拟设备驱动程序(VxD)。这些虚拟设备驱动程序作为被托管的Windows核心成员运行,可以"到任何地方做任何事",最终可以知道Windows是怎样实现虚拟机的。它们的结构十分直观,便于了解和掌握。当运行环境变得复杂时,VxD本身和基于DLL的驱动程序同样简单。

第三部分介绍Windows系统下标准模式设备驱动程序的编写。这一部分讲述了怎样编写一个高质量的驱动程序,Windows程序怎样与DOS的TSR进行通信,在Windows中怎样用DMA进行工作,以及其他一些高级应用。

本书是一本技术性较强的工具书,它主要适用于有一定计算机基础的程序开发者和硬件设计者,同时也适应于需要进一步了解计算机应用的读者。

目录

第1章概述

1.1本书的读者对象

1.1.1哪些人应该读这本书

1.1.2哪些人不能读这本书

1.2应用平台

1.3本书的结构

1.4学习的方法

1.5需要的工具

第一部分 驱动程序基础

第2章基础知识

2.1驱动程序的定义

2.2特权封装

2.3非特权封装

2.4 DLL与静态库的比较

2.5为什么要把驱动程序封装为DLL

2.6应用程序与DLL比较

2.6.1 DLL和栈段

2.6.2 DLL和数据段

2.6.3 DLL和动态分配内存的主权

2.6.4 DLL的初始化和终止

2.7 DLL的函数要求

2.8框架驱动程序

2.9建立框架驱动程序

2.10 DLL需要应用程序

2.11驱动程序的调试工具

2.12总结

第 3 章与硬件相连接

3.1端日映射和内存映射的比较

3.1.1访问瑞口映射硬件

3.1.2访问内存映射硬件

3.1.3两步骤地址转换过程

3.1.4对1 MB以下的设备映射使用预定义的选择器

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驱动程序设计概述

3.4驱动程序例子

3.5内存映射的方案

3.6先进内存的问题

3.7设备映射大于1 MB需要DPMI服务

3.8总结

第4章中断方式设备驱动程序

4.1 Windows虚拟内存

4.2 实现方法

4.3什么是可以丢弃的

4.4为什么整理内存

4.5安全中断驱动程序内存需求

4.5.1固定的原因

4.5.2不可丢弃的原因

4.5.3页面锁定的原因

4.6中断安全的代码和数据

4.6.1 FIXED何时是真正固定的

4.6.2动态分配中断安全的缓冲区

第二部分 虚拟驱动程序简介

第5章Windows的虚拟世界

5.1虚拟机是什么

5.2 Windows的执行环境

5.2.1管理程序

5.2.2 Wndows应用程序

5.2.3 DOS应用程序

5.3 Wndows地址空间

5.3.1线性地址空间

5.3.2线性地址空间和物理地址空间

5.3.3逻辑、线性和物理地址空间

5.4这意味着什么

5.5实现虚拟机

5.5.1捕获I/O操作

5.5.2捕获内存操作

5.5.3捕获中断和异常事件

5.6 V86模式简介

5.7总结

第6章虚拟驱动程序简介

6.1 VxD的基本结构

6.2设备描述器部件

6.3支持数据结构

6.4事件的标志信息

6.5保护模式初始化

6.6创建VxD的工具

6.7总结

第7章设备选优VxD

7.1 VMM和处理器的异常事件

7.2端口所有权

7.2.1 PORTTRAP(端口访问)程序例子

7.2.2仿真多字节I/O

7.2.3安装和使用PORTTRAP

7.3例子PAGETRAP

7.3.1初始化例程

7.3.2错误处理器例程

7.3.3结束处理器

7.3.4测试PAGETRAP

7.4总结

第8章服务硬件中断的VxD

8.1中断和VMM

8.1.1中断反射的过程

8.1.2哪个VM获得中断

8.1.3扩展模式中的中断执行时间

8.2 VxD通信

8.2.1传递参数

8.2.2从应用程序调用VxD的API

8.2.3硬件中断处理VxD

8.2.4 API调用服务

8.3硬件中断反射VxD

8.3.1目调Mast

8.3.2目调Hw_Int

8.3.3回调EOI

8.3.4回调Virt_Int和IRET

8.4总结

第三部分特殊技术

第9章第0层处理器缩短响应时间

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总结

第10章双模态驱动程序

10.1新的双模态驱动程序综述

10.1.1新的双模态驱动程序代码

10.1.2回调细节

10.2总结

第11章编写使用DMA的驱动程序

11.1 DMA缓冲区的要求

11.1.1物理上毗邻

11.1.2固定的和页面锁定

11.1.3定位在64KB的边界上

11.1.4怎样分配DMA缓冲区

11.2 Windows下DMA的DOS应用程序

11.3 DMA的Wndows应用程序可使用这个知识

11.3.1使用VDS缓冲区更好

11.3.2最佳的解决方案――助手VxD

11.4 DMABUF的API

11.5使用助手VxD――USEAPI.C

11.6总结

第12章使用实模式服务

12. 1关于DOS设备驱动程序

12.1.1对IOCTL的专门处理

12.1.2介绍DOS TSR

12.1.3通过缓冲区传递数据

12.1.4 TSR调用Windows应用程序

12.2增强模式中的回调

12.3编程细节

12.4总结

第13章编写标准模式的驱动程序

13.1基本概念

13.1.1硬件的端口映射

13.1.2内存映射的硬件

13.1.3标准模式中的选择器

13.2标准模式中的中断

13.3从保护模式和实模式中获取中断

13.4分离实模式控制器和保护模式控制器

13.5总结

第14章定时器和软件中断

14.1定时器

14.1.1使用SetTimer()

14. 1.2调用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的周期计数或者是timeGetTime()

14.2软件中断

14.2.1连接到软件中断

14.2.2用VxD捕获软件中断

14.3编程细节

14.4总结

文档截图

QQ截图20190527100953.jpg

Windows设备驱动程序技术内幕[PDF][7.79MB]

一、推荐使用迅雷或快车等多线程下载软件下载本站资源。

二、未登录会员无法下载,登录后可获得更多便利功能,若未注册,请先注册。

三、如果服务器暂不能下载请稍后重试!总是不能下载,请点我报错 ,谢谢合作!

四、本站大部分资源是网上搜集或私下交流学习之用,任何涉及商业盈利目的均不得使用,否则产生的一切后果将由您自己承担!本站将不对任何资源负法律责任.如果您发现本站有部分资源侵害了您的权益,请速与我们联系,我们将尽快处理.

五、如有其他问题,请加网站设计交流群(点击这里查看交流群 )进行交流。

六、如需转载本站资源,请注明转载来自并附带链接

七、本站部分资源为加密压缩文件,统一解压密码为:www.aizhanzhe.com

下载地址
大家评论