- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《WDM驱动程序开发》.pdf
WDM 驱动程序开发文档
WDM (Windows Driver Mode )是MS 提供的98 和NT 5.0 下的通用的驱动程序模型。相
比起以前的KDM 和VXD 来说,它的性能更高、系统之间移植更加方便。所以,随着系统的
升级(指MS 的操作系统),WDM 已经逐步取代KDM 和VXD ,成为MS 系统下驱动程序开
发的主流。(关于Windows 下的驱动程序编写,查看参考文献1)
第一部分 从操作系统看驱动程序
Windows NT 的系统结构决定了NT 下访问设备的特殊性。NT 是建立在Mach 和Vax 思想
上的一种客户/服务器模型操作系统,由一个特权执行体以及一系列被称为保护子系统的非特
权服务器组成。整个操作系统被分为用户态模式和核心态模式。所谓特权,是指处理器的操
作方式,大多数的处理器都有一种甚至若干种特权方式。在特权方式方式下,所有机器指令
都可执行并且系统内存可存取。在非特权方式方式下,某些机器指令不能执行并且系统内存
不可存取。在Windows NT 下,核心态就是指处于特权处理器方式下,而用户态总处于非特权
处理器方式。
核心态模式又被称为NT 执行体,包括了系统服务和硬件描述层(HAL),它们运行于CPU
的特权层Ring0(在驱动程序内部,在不同部分还分为不同权限层) 。系统服务包含了一个操作
系统的所有应有服务,文件系统,进程控制,内存管理,设备管理等等。NT 中除了微内核外,
另外还包含了一些独特的部分,如对象管理器,配置管理器,执行体支持,本地过程调用,
安全监视器,所有这些都建立在HAL 之上。IO 管理器实现对设备的管理,包含了文件系统,
中间介质和设备驱动。通过HAL ,NT 可以防止内核和NT 执行体的其它部分受硬件平台不同
的影响。另外NT 还将网络管理器加入了核心态模式。用户态模式包括了一些保护子系统,如
OS/2 子系统,POSIX 子系统,安全子系统,当然还有最常用的Win32 子系统,NT 都称之为
服务器。它们运行于CPU 的用户层Ring3 ,建立在服务器上的各类应用程序被称为客户。
从上图中,我们可以把和驱动程序相关的部分提取出来,就得到了下面简化的系统结构:
图二:WIN2000 的系统结构
从这里我们可以看出驱动程序要处理的就是从IO Manager 发送过来的IRP (IO Request
Packer ),根据不同的 IRQ 作出不同的相应(或者是通过调用系统提供的函数来读写端口),
比方说,我们在最上层调用函数::ReadFile,系统就会发送一个IRP_MJ_READ 给驱动程序。从
这一点我们可以看出:驱动程序本质上可以看作是工作在系统底层的一个
DLL 。然后我们将要描述一个操作的典型过程。
I/O 管理器的主要工作是接收I/O 请求(通常来自于用户模式的应用程序),创建I/O 请
求包,将IRP 传递给合适的NT 驱动。并且跟踪它们直到完成。并且为每个I/O 操作的原始请
求者返回状态。I/O 管理器使用IRP 和NT 驱动通讯,并且允许NT 驱动互相之间通讯。要注
意的是一些IRP 将传递给不止一个NT 驱动。例如,在磁盘中打开文件这个请求将将手先传到
文件系统驱动,经过中间介质的镜像驱动最终传到物理磁盘驱动。因此每一个 IRP 有一个固
定的部分,还有一个或多个I/O 的位置栈。在固定的部分,I/O 管理器保持原始请求信息,例
如调用者参数,关于哪一个文件打开的设备对象地址,等等。另外在固定的部分还包含I/O 状
态块,其中包含了请求操作的驱动信息。在高级驱动的I/O 本地栈中,I/O 管理器设置特殊的
参数。
I/O 管理器提供异步 I/O ,这样IRP 的请求者能够继续执行,而不是等待IRP 完成。NT
驱动没有必要按照它们传递给I/O 管理器的顺序处理I/O 请求。I/O 管理器或高级驱动在接收
时可以重新排列I/O 请求或将大数据的传输请求分离为小的传输请求。于是我们就得到了下面
的驱动程序处理IRQ 的基本框架:
” 图三:IRP 处理的典型流程
NT 保护子系统,例如WIN32 子系统,通过I/O 系统服务传递I/O 请求到相应的核心态子
系统。如上图所示。通过NT 的I/O 管理器提供的文件对象,子系统可以存取NT 驱动设备或
储存设备。在NT 系统中,所有
您可能关注的文档
- 《Understanding CDMA measurements for base stations and their components》.pdf
- 《Understanding MVC》.pdf
- 《UNIX&LINUX 平台可执行文件格式分析》.pdf
- 《unix_linux应用程序命名法》.pdf
- 《UNIX到+Linux应用移植的研究》.pdf
- 《Up! Mini 3D打印机全面评测:仅899美元在国内买不到的3D打印机》.pdf
- 《UPLC(ACQUITY 系统操作培训教程)》.pdf
- 《V1_二零一六0826_二零一六年金融学、经济学考研_国际贸易学讲义_郝延伟》.pdf
- 《vb6.0高清教程系列_第01章_Visual_Basic_6.0_概述(共九章)》.pdf
- 《VB基础教程 计算机等级考试二级教程》.pdf
最近下载
- 计算机二级Python编程真题及答案解析(共10套真题.doc VIP
- 保研面试题目及答案.docx VIP
- 2025江苏张家港经开区国有资本投资运营集团有限公司招聘工作人员19人备考题库及答案解析.docx VIP
- 三上教材解读及教学建议[部编].ppt VIP
- 2025四川中烟投资有限责任公司招聘59人(中烟工业)笔试参考题库附答案解析.docx VIP
- DN2000钢筋混凝土顶管施工.pdf VIP
- 《销售人员职业教程》课件.ppt VIP
- 2025江苏张家港经开区国有资本投资运营集团有限公司招聘工作人员19人备考试题及答案解析.docx VIP
- 【沪教】六上英语知识点总结.pdf VIP
- 船舶主机全文.pdf
文档评论(0)