基于WDM的Windows2000驱动开发技术
- 格式:pdf
- 大小:208.62 KB
- 文档页数:3
—266— Windows 2000下 WDM 驱动程序的研究与开发郭 艳,苗克坚(西北工业大学计算机学院,西安 710072)摘 要:分析研究了Windows 2000下WDM 驱动程序的基本原理。
以Microsoft 的DDK 为开发工具,开发了基于PCI 总线的通信接口板的WDM 驱动程序。
证实了该驱动程序有很大的实用价值,且有助于对操作系统的理解。
关键词:Windows 设备驱动程序模型;设备驱动程序开发包;设备驱动程序;I/O 请求包;设备对象Research and Design of WDM Driver under Windows 2000GUO Yan, MIAO Kejian(College of Computer, Northwestern Polytechnical University, Xi’an 710072)【Abstract 】This paper analyses and researches the basic principle of WDM driver under Windows 2000 operating system. Using DDK of Microsoft, the authors develop a WDM driver for the communication interface based on PCI bus.The result shows that it has great value in application, and is helpful to understand the operation system.【Key words 】Windows device driver model(WDM); Device drivers kit(DDK); Device driver; I/O request packet(IRP); Device object计 算 机 工 程Computer Engineering 第32卷 第22期Vol.32 No.22 2006年11月November 2006·开发研究与设计技术·文章编号:1000—3428(2006)22—0266—03文献标识码:A中图分类号:TP311目前,Windows 2000/XP 已经成为PC 主流的操作系统,而应用程序在Windows 2000/XP 平台上只有通过驱动程序才能访问硬件设备。
WDM驱动开发之路(1)WDM开发之路(1)--驱动开发网WDM教程WDM驱动开发之路写在前面:在专栏的前几期中,我们一起初步学习了vxd的开发技术。
Vxd技术是很深奥的,不是一篇两篇文章能讲清楚,但你已经入了门,剩下的就要看你的修行了。
多看书,多泡论坛(当然是上咱们的驱动开发网论坛了:->),多写程序…我的手不够用了。
功到自然成嘛。
不过话又说回来,vxd只是权宜之计,WDM才符合当今的潮流(程序员都是时髦人士,君不见先是VB、VC然后是asp、JSP、PHP,数也数不过来呀),Win9x寿终正寝时也就是vxd的末日,你不想随它而去吧(开个玩笑),那就随我来。
按笔者的想法,这篇文章写成连载形式,一次讲一个主题,并且必要时带着例子,让大伙step by step地把WDM驱动弄个透底,不想让大家觉得稀里糊涂,也不想让大家觉得白买杂志了。
今天我们一起讨论第一部分,了解篇。
(一)了解篇WDM模型(Windows Driver Model)是微软公司为当前主流操作系统Windows98和Windows 2000的驱动程序设计的一种构架。
它和传统的win3.x和win95使用的vxd的驱动是完全不同的体系结构。
不过对于最终用户来说,WDM驱动程序在Windows98和Windows2000下的表现很相似。
作为驱动开发人员来说,它在两者中有很多的不同。
并且Windows98中的WDM只能算是Windowss2000中的WDM的一个了集。
在Windows98中有一些驱动程序只能使用VXD来实现,如串行通讯驱动等。
要写驱动程序,首先要了解操作系统的结构。
在WDM体系中,windows2000操作系统中是最标准的实现方式,Windows98则是部分兼容WDM结构。
照微软的说法,Windows98和Windows2000 X86(Intel 架构)版本实现二进制码兼容(参见98DDK),Windows2000 x86版本与其它CPU平台版本实现源码级兼容(因为Windows 2000是基本NT相似的结构,最底层是硬件抽象层HAL,所有我们相信它们之间能源码级兼容)。
Windows 2000 内核模式驱动程序设计一、W indows 2000驱动程序和WDM1.Windows 2000 系统组件Windows 2000 系统组件如下图:Windows 2000组件其中,驱动程序设计者主要涉及的有:内核、I/O管理器、即插即用(PnP)管理器、电源管理、硬件抽象层(HAL)、配置管理器、内存管理器、运行支持和进程结构组件。
PnP管理器和电源管理器是Windows 2000新组件,它们仅支持Windows 2000和WDM 驱动程序。
2.Windows 2000驱动程序类型Windows 2000驱动程序从总体上分为用户模式驱动程序和针对逻辑、虚拟或物理设备的内核模式驱动程序。
其中内核模式驱动程序可以分为三种基本类型:最高层、中间层和最低层。
(1)最高层驱动程序,如系统提供的FAT、NTFS、CDFS文件系统驱动程序(FSD)。
(2)中间层驱动程序,如虚拟磁盘、镜像、特定于设备类型的类驱动程序等。
PnP功能驱动程序是主要的设备驱动程序,它们在一个I/O总线上控制特定的外围设备,而I/O总线是由PnP硬件总线驱动程序来控制的。
PnP过滤器驱动程序过滤一个设备、设备类或总线的I/O请求。
在驱动程序栈内将自己插入到PnP功能驱动程序中去,以支持任何特定的外围设备。
高层驱动程序提供设备的增值特性,低层驱动程序修改设备硬件的行为,低层和高层的过滤器驱动程序都是可选的。
PnP软件总线驱动程序表示一组子设备,较高层的类、功能和/或过滤器程序将它们自己连到这些子设备上。
(3)最低层驱动程序,如PnP硬件总线驱动程序。
它控制连有一些外围设备的I/O 总线。
高层驱动程序总是依赖于低层驱动程序的支持,最低层驱动程序直接控制物理设备。
内核模式驱动程序类型3.Windows 2000和WDM驱动程序的设计目标平台之间的可移植性大部分2000组件完全是用C写成的,只有少部分HAL和内核是用汇编语言写的,因此内核模式驱动程序也应用C来写。
Windows 2000/XP 下I/O 设备驱动程序的设计李建 戴胜华(北方交通大学电子工程学院 自动控制教研室,北京 100044)摘要:本文介绍了Windows 2000/XP 下WDM 驱动程序的基本设计方法;阐述了I/O 设备驱动程序的基本构成,硬件资源的配置和访问的方法;提出了设备驱动程序在实际应用中的层次化结构。
关键词:WDM ;设备驱动程序;I/O 端口;DLLDesign of I/O Device Driver under Windows 2000/XPAbstract :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; DLL1. 引言在开发微机应用系统的过程中,尤其是在控制系统中,通常会遇到在Windows 环境下对具有特定功能的硬件设备(如数据采集卡),进行直接访问和控制的问题。
因为在Windows 操作系统下,CPU 运行于保护模式,并且统一管理硬件资源,执行于用户态的应用程序不能直接访问硬件,而是通过调用执行于核心态的设备驱动程序提供的各种服务间接地对硬件资源进行访问,这一机制确保了系统的安全。
所以,以前在Dos 和Windows 98下可以很容易完成的I/O 端口读写,在Windows 2000/XP 下必须编写驱动程序,才能够实现。
WDM内核驱动程序模型分析WDM驱动程序是Windows 2000操作系统重要的组成部分,它的正常工作需要有Windows 2000其它内核组件的支持,同时大部分的内核组件也必须同WDM驱动程序交互来完成它们的功能,为能够完整而清晰的说明WDM驱动程序的工作情况,本文首先说明Windows 2000操作系统的内核工作机理,同时将给出WDM驱动程序和内核其它组件的协同工作机制,最后分析WDM驱动程序的结构和工作流程。
1 Windows 2000内核组件工作模式1.1 Windows 2000的设计思想在现代操作系统中,应用程序和操作系统本身是分开的——操作系统代码运行在核心态并有权访问系统数据和硬件;应用程序运行在用户态,能够使用的接口和访问系统数据的权限都受到限制。
当用户程序调用系统服务时,处理器捕获该调用,然后把调用的线程切换到核心态。
当系统服务完成后,操作系统将线程描述表切换回用户态,允许调用者继续运行。
系统核心态部分的设计是丰富多样的。
较典型的有以下几种:A) 传统的单片式操作系统。
系统被设计为一个单一的、庞大的软件系统,在内部组件之间有许多关联。
这种软件系统依赖于许多系统组件。
这种相互关联意味着要扩展系统,就需要对全部代码库进行大量修改。
同时在单片式操作系统中大量的操作系统代码运行于同一内存空间,这就意味着任何操作系统组件都可能损坏正在被其它组件使用数据。
B) 分片式的操作系统。
将操作系统发分为不同层次中的模块。
每个模块提供一组功能函数其它模块调用。
在某一层次上的代码只能调用较低层次上的代码。
在一些了系统中,DEC公司的OpenVMS包括老的Multics操作系统,硬件甚至强制分层(使用多重、分级处理模式)。
分层操作系统结构的优点是,由于每层代码只能访问较低层的接口(和数据结构),因此限制了使用无限权利的代码数量,这种结构也允许在最底层开始调试操作系统,然后一层一层的往上调试,直到整个操作系统工作正常。
基于Windows2000开发WDM设备驱动程序的方法摘要:本文介绍了Windows 2000 WDM驱动程序结构及其原理,给出一个驱动程序的例子关键词: WDM 驱动程序1.概述引入了全新的WDM (Win32 Driver Model)的驱动程序架构,说是新技术,其实早在1997年Microsoft就提出了该项技术并在Windows 98中得到了充分的应用,换句话说,Windows 98也支持WDM。
这样WDM就成为了一个跨平台的驱动程序模型不仅如此WDM驱动程序还可以在不修改源代码的情况下经过重新编译后在非Intel平台上运行。
2.WDM设备驱动程序的特点和原理2.1通用驱动程序对基本上一样的硬件,因为他们共享一个总线或完成类似的任务,设备驱动程序可以使用这些标准的驱动程序功能,使公共总线的共享容易,且更容易写出新的驱动程序,总线驱动程序,如USB、1394,和类驱动程序。
(1)Win32程序接口:可以使用Win32函数像访问文件那样访问设备CreateFile() 、Closehandle()、ReadFile()、WriteFile()、DeviceIoControl ()用于发出特殊请求,可发送数据给驱动和从驱动得到数据,IOCTL代码可以是预先定义的也可是自己定义的。
(2)创建设备大多数WDM设备对象都是在PnP管理器中调用AddDevice入口时创建,这个PnP 例程在插入新设备和安装Inf文件时被调用,此后一系列的PnP IRP 被发送到驱动程序,指示设备应如何启动和查询它的功能2.2WDM-的工作原理WDM是在NT 4.0驱动程序结构上发展起来的,所以它与NT 4.0驱动程序极为相似,但是它却有了本质上的提高,比如它支持USB、IEEE 1394、ACPI等全新的硬件标准。
虽然Windows 98与Windows 2000都支持WDM,可是并不意味着Windows 98下的VxD可以在 Windows 2000下运行,而NT下的WDM却可以在Windows 98下运行。
wdm驱动
WDM驱动是指Windows Driver Model(Windows驱动模型)驱动,它是一种用于开发Windows操作系统设备驱动程序的软件框架。
WDM驱动是为Windows 98、Windows Me和Windows 2000引入的,它提供了一种标准化的方式来编写设备驱动程序。
相比于传统的驱动开发方式,WDM驱动具有更丰富的功能和更高的灵活性。
WDM驱动在设备驱动程序的开发中提供了许多优点,包括:
1. 简化了驱动程序的开发:WDM驱动使用一套统一的API,使得驱动程序的开发更加简单和一致。
2. 可移植性:WDM驱动可以在不同的Windows操作系统版本上运行,而无需进行大量的修改。
3. 兼容性:WDM驱动允许旧的驱动程序与新的设备完全兼容,而无需进行修改。
4. 性能:WDM驱动通过使用更高级的设备驱动模型和硬件访问机制,提高了设备驱动程序的性能。
总之,WDM驱动是一种用于开发Windows设备驱动程序的软件框架,它提供了许多优势和便利,使开发者能够更轻松地开发高性能和兼容性强的驱动程序。
基于Windows 2000的开放式数控系统中WDM驱动程序
的开发
张敏;王晓明
【期刊名称】《组合机床与自动化加工技术》
【年(卷),期】2002(000)011
【摘要】为了使开放式数控系统更具有开放式的特性,本文给出了一个通用的开放式数控系统实例,设计了其硬件结构和软件结构的实现方案.对于数控系统中的各控制模块以模拟I/O卡(A/D控制卡)为代表进行了WDM驱动程序的开发.在Windows 2000上经过实际测试,得到了很好的控制效果.
【总页数】4页(P52-55)
【作者】张敏;王晓明
【作者单位】大连理工大学,机械工程系,辽宁,大连,116024;大连理工大学,机械工程系,辽宁,大连,116024
【正文语种】中文
【中图分类】TP273
【相关文献】
1.基于Windows 2000下开放式数控系统软件的开发 [J], 陈德妙;张桂香
2.基于Windows 2000的开放式切割机数控系统设计 [J], 龙佑喜;谢松县;杨帆;孙海洋
3.基于Windows2000的开放式数控系统设计 [J], 周虹
4.基于Windows2000操作系统的PCI卡WDM驱动程序开发 [J], 文臣
5.Windows2000/XP下基于PLX9052的WDM驱动程序开发 [J], 雷青锋因版权原因,仅展示原文概要,查看原文内容请购买。
Windows 2000 WDM设备驱动程序的开发
孟毅;冯志彪
【期刊名称】《微型电脑应用》
【年(卷),期】2003(019)012
【摘要】WDM是微软公司推出的设备驱动程序开发模型,本文以研华公司的PCI-1750为例介绍了WDM设备驱动程序的开发,并给出了部分源代码.
【总页数】2页(P63-64)
【作者】孟毅;冯志彪
【作者单位】同济大学电子与信息与工程学院,上海,200092;同济大学电子与信息与工程学院,上海,200092
【正文语种】中文
【中图分类】TP3
【相关文献】
1.基于Windows WDM的USB设备驱动程序的开发 [J], 赵志诚;帖翊;杜栓义
2.Windows 2000环境下测控系统的WDM设备驱动程序的开发及应用 [J], 郎宝华;郭俊杰
3.Windows 2000/XP下WDM设备驱动程序的开发 [J], 周振喜;陈晓峰;张国煊
4.Windows 2000/XP下PCI总线WDM设备驱动程序的开发 [J], 张成新;赵玉刚;周海安
5.Windows WDM USB设备驱动程序的开发 [J], 郭静;刘付火
因版权原因,仅展示原文概要,查看原文内容请购买。
基于Win2000下WDM驱动程序的转台实时控制系统
刘鹏;杨小军
【期刊名称】《电子器件》
【年(卷),期】2009(032)004
【摘要】在对Win2000平台工作特点分析的基础上,研究了在Win2000平台下进行实时控制编程的关键技术,WCD驱动程序中断编程以及Win32应用程序与WCD驱动之间的通信方法,基于此,利用WCD技术与VC联合编程实现随动实时控制系统.实践表明:系统工作稳定可靠,把虚拟驱动程序用于转台实时控制是可行的,具有开发方便,事务处理能力强等优点,此种研制方法对同类设备具有一定的借鉴意义.【总页数】4页(P846-849)
【作者】刘鹏;杨小军
【作者单位】中国科学院西安光学精密机械研究所,西安,710068;中国科学院研究生院,北京,100039;中国科学院研究生院,北京,100039
【正文语种】中文
【中图分类】TP273
【相关文献】
1.基于步进电机的转台驱动系统WDM驱动程序设计 [J], 刘明;高辉文;李春权;杨道安
2.基于虚拟设备驱动程序的转台实时控制系统 [J], 孙磊;杨小军;彭伟;车嵘
3.基于xPC实时控制的液压飞行转台控制系统设计与实现 [J], 徐东东;彭伟伟;万红坡
4.基于PCI总线的实时测频卡WDM驱动程序设计 [J], 曾磊;陈铖;郭虹
5.基于EtherCAT实时以太网技术的转台控制系统设计研究 [J], 李丰;信光成;张建成;赖智华
因版权原因,仅展示原文概要,查看原文内容请购买。
基于Windows 2000 WDM模型的AD板采样驱动程序的
设计
刘锐岗;董秀珍;尤富生;李付峰;李江;史学涛
【期刊名称】《计算机应用研究》
【年(卷),期】2001(018)008
【摘要】介绍了Windows 2000操作系统下的WDM驱动程序基本设计方法,并以一款AD板为例给出了驱动入口点、创建和删除设备、硬件资源分配和访问、Win32应用程序接口等的具体实现,最后介绍了设备驱动程序的安装步骤.
【总页数】3页(P95-97)
【作者】刘锐岗;董秀珍;尤富生;李付峰;李江;史学涛
【作者单位】第四军医大学生物医学工程系医学电子工程教研室;第四军医大学生物医学工程系医学电子工程教研室;第四军医大学生物医学工程系医学电子工程教研室;第四军医大学生物医学工程系医学电子工程教研室;第四军医大学生物医学工程系医学电子工程教研室;第四军医大学生物医学工程系医学电子工程教研室【正文语种】中文
【中图分类】TP316.86
【相关文献】
1.基于Windows 2000 WDM的高速网卡驱动程序设计技术 [J], 刘军
2.基于Windows 2000的WDM驱动程序设计 [J], 黄兆祥;郭麦成;沈利香
3.Windows 2000下的PCI设备的WDM驱动程序设计与研究 [J], 徐从启;解旭
辉
4.Windows 2000下PCI数据采集卡WDM驱动程序设计 [J], 张广华;苏秀琴;李哲
5.Windows2000下PCI数据采集卡WDM驱动程序设计 [J], 张广华;苏秀琴;李哲
因版权原因,仅展示原文概要,查看原文内容请购买。