- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
POI设备中断驱动程序开发
何兆龙刘军泰
中国电子科技集团公司第54研究所
摘要、该支介绍了windows2000下PCI设备驱动程序的一般结构,重点介绍了中断部分的
开发要点和解决方案、
关键词PCI总线内核模式IRe中断中断服务例程DPC,,
“
、 X
1 引言
Windows
2000以其安全、稳定以及界面友好等特性逐渐成为各种测控平台的主流操
作系统,而PC]总线的高速、稳定和良好的扩展性使其逐渐成为各种计算机系统广泛采
用的总线。面对测控系统中大量采用的串并通讯等技术,要求用户不断开发出满足自身需
要的硬件设备,同时要求应用程序与这些硬件设备进行通讯,发送控制命令,读取数据和
状态信息等等。Windows
2000出于安全性、稳定性等考虑,不允许用户应用程序对物理
硬件进行直接访问,这就需要使用设备驱动程序跨越操作系统边界对物理硬件进行操作,
并向上提供客户应用程序控制接口以供调用。
2 Windows
2000的分层体系和设备驱动程序
Windows
2000分层体系如图1所示,可以看出,操作系统代码被分为三个主要部分:
a)可执行部分,包括各种子系统;
b)内核;
c)硬件抽象层(HAL)。
㈣管.簿k≯
乎拳靛 :、一.::==:/ ‘
破筹赛{⑧;
鞲{:豫文
肉媾张斌
孰暂韩
可执行层的部件使用的服务由内核和HAL提供。HAL和内核共同工作把可执行层部
386
件从处理器部件中分离出来,这正是Windows
2000良好的可移植性的基础,这就意味着
驱动程序编写者只需要写一次驱动程序就可以支持其它的处理器体系结构。
内核包括I/O管理器、对象管理器、安全引用监视器、进程管理器、局部过程管理
器、内存管理器和高速缓存管理器等各种部件,设备驱动程序在图1左下角,受内核的I/O
管理器控制,它通过与各内核部件作用来完成通过HAL对硬件的访问。
3驱动程序的工作方式
内核模式驱动程序与上层应用程序之间的最大差别之一是驱动程序的体系结构。内
核模式驱动程序没有main或WinMain,只有一个驱动程序入口和很多驱动程序服务例程,
这些例程可看做许多完成不同功能的模块。驱动程序入口负责查找设备并生成一个设备对
象,并向驱动程序对象添加各个例程的入口点,当上层应用程序发出请求时,I/O管理器
就根据需要调用一个驱动程序例程,当操作完成后再由I/O管理器返回操作结果给上层应
用程序。
驱动程序初始化完成之后,始终等待发自上层应用程序的命令或由其它事件源引起的
事件。一旦命令或事件发生,I/O管理器就调用相应的服务例程。而几乎所有的I/(9操作
都是通过I/O请求包(IRP)驱动的。所谓IRP驱动,就是当上层应用程序发出操作请求
后,I/O管理器负责在非分页的系统内存中分配一定的空间,并按~定的数据结构把描述
这个I/O请求的信息置于其中,再传递到驱动程序服务例程。当一个IRP被服务例程完成
而返回到I/O管理器的时候,也就是I/O管理器向上层应用程序提交成功完成操作的时候。
所以说IRP起于1/(3管理器,止于I,o管理器,并且贯穿了整个驱动程序。
图2是一个驱动程序处理请求的典型步骤,尽管每个设备驱动程序不必强求遵循这个
顺序,但这是很多驱动程序所使用的基本顺序。
当I/O管理器收到一个处理请求后,就根据请求的功能代码把IRP分派到服务例程。
被分派的服务例程尽可能的处理IRP,然
文档评论(0)