- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
 - 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
 - 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
 - 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
 - 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
 - 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
 - 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
 
                        查看更多
                        
                    
                2000XP下IO设备驱动程序设计
                    
Windows 2000/XP下I/O设备驱动程序的设计
李建 戴胜华
(北方交通大学电子工程学院 自动控制教研室,北京 100044)
摘要:本文介绍了Windows 2000/XP下WDM驱动程序的基本设计方法;阐述了I/O设备驱动程序的基本构成,硬件资源的配置和访问的方法;提出了设备驱动程序在实际应用中的层次化结构。
关键词:WDM;设备驱动程序;I/O端口;DLL
Design of I/O Device Driver under Windows 2000/XP
Abstract:This paper introduce the primary designing methods of WDM driver under Windows 2000/XP.  It describe the basic structure of an I/O device driver, and the method of configing and accessing the hardware resources. It also put forward the layered structure of device driver in the real implement.  
Keyword:WDM;device driver; I/O port; DLL
引言
在开发微机应用系统的过程中,尤其是在控制系统中,通常会遇到在Windows环境下对具有特定功能的硬件设备(如数据采集卡),进行直接访问和控制的问题。因为在Windows操作系统下,CPU运行于保护模式,并且统一管理硬件资源,执行于用户态的应用程序不能直接访问硬件,而是通过调用执行于核心态的设备驱动程序提供的各种服务间接地对硬件资源进行访问,这一机制确保了系统的安全。所以,以前在Dos和Windows 98下可以很容易完成的I/O端口读写,在Windows 2000/XP下必须编写驱动程序,才能够实现。
由于各种操作系统结构的不同影响了设备驱动程序的兼容性,为此微软公司在1997提出了一种全新的Windows驱动程序模型(WDM),并在推出Windows 2000操作系统时正式引入了这一技术。WDM以Windows NT4.0的内部结构为基础,同时引入了Windows 9x的即插即用特性,为存在于Windows 9x和Windows 2000操作系统中的设备驱动程序提供了一个统一的参考框架[1]。在Windows 98/Me,Windows 2000和更高版本的操作系统上运行的设备驱动必须是WDM驱动[4]。
WDM驱动程序的基本结构
可以把一个完整的WDM驱动程序看作一个容器,其中包含了许多子例程,操作系统调用这个容器中的例程来执行针对IRP(I/O请求包)的各种操作,图1表示了这一概念。
基本驱动程序       I/O控制              分发例程
DrvierEntryAddDevice
DrvierEntry
AddDevice
StartIo
AdapterControl
OnInterrupt
DpcForIsr
DispatchPnp
DispatchPower
DispatchWmi
DispatchRead
DispatchWriter
    必须的驱动例程
    处理排队请求应包括StartIo
    如果设备有中断应包括OnInerrupt和DpcForIsr
    对DMA操作应包括AdapterControl
    可选的分发例程
图1  WDM驱动程序可执行包中的内容[2]
在每一个驱动程序中,都包括DriverEntry、AddDevice和几种IRP分发例程。需要对IRP排队的驱动程序一般都有StartIo例程;执行DMA传输的驱动程序应有一个AdaperControl例程;大部分能产生硬件中断的设备,需要有一个中断服务例程(Interrupt Service Routine,ISR)和一个延迟过程调用(Deferred Procedure Call,DPC)例程。多数的驱动程序都还有几个支持不同类型IRP的分发例程。WDM开发人员的任务之一就是选择自己特定驱动中需要的例程[2]。
设备的创建和初始化
驱动程序向操作系统显露名为DriverEntry的函数,DriverEntry例程只在驱动程序第一次被装入时执行一次,但是一个驱动程序可以被多个实际设备利用,所以WDM驱动程序有一个特殊的AddDevice函数,PnP管理器为每个设备实例调用该函数。创建设备可以在AddDevice函数中实现,它的主要任务是为建立和启用的设备,建立一个符号链接名或者注册设备接口,将当前驱动程序添加到设备栈中。
硬件的访问
PnP管理程序调用的
                您可能关注的文档
- 011电机扩大机维修和调整.doc
 - 03-4一轮新课标三维化学(人教版)第三章 第四节 用途广泛金属材料 课时作业.doc
 - 0106金蝶KIS专业版 恢复帐套流程.doc
 - 033.心脏胚胎发育和畸形.doc
 - 05-C2-004聚丙烯PP-R供水管道和配件安装.doc
 - 04_云中含水量计算.doc
 - 04变压器节能技术.doc
 - 05 TBB-800-2EY3型发电机定子铁芯过热部位查找和.doc
 - 05捷达冷启动问题和解决方法.doc
 - 06 机械设计作业_键、花键、无键联接与销连接.doc
 
- 2000~2005年全国中学生生物学联赛理论与实验考试第三部分《动物分类、形态、解剖与生理》专题归类训练.doc
 - 2004年申论试题和答案.doc
 - 2005-2006年下学期高一物理功率和功率计算汽车起动问题 鲁教版.doc
 - 2005国际心肺复苏(CPR)和心血管急救(ECC)指南.doc
 - 2001年国家对国际不法行为责任条款草案案文.doc
 - 2006JXYW05003-货物包装和标识规定.doc
 - 2007年一级建造师《管理和实务(铁路工程)》真题和答案.doc
 - 2006会计准则科目和2001会计制度科目变化.doc
 - 2007版进出口税则商品和品目注释修订本.doc
 - 2008年11月设备和管道附件检测记录.doc
 
原创力文档
                        

文档评论(0)