pci设备windows通用驱动程序设计

pci设备windows通用驱动程序设计

ID:19335889

大小:39.50 KB

页数:7页

时间:2018-10-01

pci设备windows通用驱动程序设计_第1页
pci设备windows通用驱动程序设计_第2页
pci设备windows通用驱动程序设计_第3页
pci设备windows通用驱动程序设计_第4页
pci设备windows通用驱动程序设计_第5页
资源描述:

《pci设备windows通用驱动程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、PCI设备Windows通用驱动程序设计2004-5-1310:56:55 驱动开发网李海  (华强电子世界网讯)本文结合“通用高速PCI总线目标模块”的驱动程序设计,全面地讨论了Windows设备(特别是PCI设备)驱动程序编写时所面临的主要问题及解决方案,并提出了封装设备驱动的方法。  关键词:PCI设备驱动程序端口内存中断封装  在设计和使用PCI设备时,经常要在PC机的软件中访问和控制硬件设备,但Windows操作系统(包括Windows95/98、WindowsNT、Windows2000为了保证系统的安全性、稳定性和可移植性,对应用程序访问硬件资源加以限制,这就要求设计设备

2、驱动程序以实现PC机的软件对PCI设备的访问。  Windows下的驱动程序不仅仅包括物理设备的驱动程序,也包括为文件系统等非物理设备编写的虚拟设备驱动程序。为了简化问题,下面只讨论硬件物理设备的驱动程序。本文将以撏ㄓ酶咚伲校茫勺芟吣勘昴?閿[1]的驱动设计为例,探讨PCI设备的驱动程序设计方案。我们开发了一套通用的PCI设备驱动程序,它可以完成一般PCI设备驱动所需的功能,可以作为其它PCI设备驱动开发的框架。  1驱动程序的模式和开发工具的选择  设备驱动程序是指管理某个外围设备的一段代码。驱动程序不会独立地存在,而是操作系统的一部分。通过设备驱动程序,多个进程可以同时使用这些资源

3、,从而可以实现多进程并行运行。在下文中,将调用设备驱动程序的pc机程序称为用户程序。  Windows95和WindowsNT采用的驱动程序体系不同,所以大多数情况下驱动程序也不能通用。如果设备需要在Windows9X/NT下使用,一般至少要设计Windows9X和WindowsNT两个驱动程序版本。wINDOWS98可以兼容Windows95的驱动程序,同时它又推出一个新的Win32DriversMode(WDM)驱动类型。Windows98中有些设备(如USB设备)的驱动程序必须为WDM模式。这个新的类型实际是在WindowsNT的驱动模型的基础上增加了即插即用等内容。WDM驱动也

4、可以用在Windows2000(先前叫WindowsNT5.0)中。从长远的角度看。今后开发人员只要开发WDM驱动就可以了,但从目前的市场情况来看,Windws95是无法放弃的,所以WDM在近一两年还无法替代其它类型的设备驱动。  Intel80386以上的微处理器有4个优先级别:0级、1级、2级和3级,一般操作系统运行于优先级0级上,而用户程序运行在3级上,在对硬件操作上有一些限制(具体的限制在不同的操作系统中是不同的)。Windowsyearsmortgagehousing;4.mortgageregistrationformalitiesarecompleted.(D)pledg

5、e1.borrower(includingthepledgor)between18-65yearsofage,withfullcivilcapacity;2.collateral95支持的驱动类型很多,但针对一般硬件设备而言,主要是VxD和打印机驱动两类。VxD指的是VirtualDeviceDrivers。VxD运行在Intel系统的0级上,可以执行特权级指令,对任何I/O设备有全部访问权,所以大多数硬件驱动程序都是VxD。VxD驱动通常以.vxd为扩展名,放在WindowsSystem目录下,可以在Windws95启动时装入,也可以在程序运行时根据需要动态地载入。动态加载有助于节

6、约系统内存和资源。但打印机驱动程序不是VxD,它运行在3级上。同Windows95类似,WindowsNT的驱动也有可以运行在0级的内核模式(KernelMode)和运行在3极的用户模式(UserMode)之分。由于WindowsNT禁止用户模式的程序访问I/O端口(wINDOWS95/98则允许用户程序直接访问I/O端口),直接控制物理设备的驱动程序都是内核模式的。而我们设计的PCI通用驱动程序要求对各种硬件资源访问,所以应该选择工作在0级的驱动程序模式。  开发设备驱动采用的主要开发工具是微软为设备开发者提供的软件包DeviceDriverKit(DDK)。这个软件包包括有关设备开

7、发的文档、编译需要的头文件和库文件、调试工具和程序范例。在DDK中还定义了一些设备驱动可以调用的系统底层服务,象DMA服务、中断服务、内存管理服务、可安装文件系统服务等等。这些都是编写设备驱动所必须的。但Windows95的DDK由于主要使用汇编语言描述。开发起来比较困难。因此,我们在Windows95操作系统中同时采用了Numega公司的产品VtoolsD。VtoolsD是基于C/C++的,支持BorlandC++和VisualC++,使用和

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。