下载此文档

虚拟设备驱动程序的设计与实现.docx


文档分类:IT计算机 | 页数:约12页 举报非法文档有奖
1/12
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/12 下载此文档
文档列表 文档介绍
膆虚拟设备驱动程序的设计与实现薅薂莇由于Windows对系统底层操作采取了屏蔽的策略,因而对用户而言,系统变得羅更为安全,但这却给众多的硬件或者系统软件开发人员带来了不小的困难,因为蚄只要应用中涉及到底层的操作,开发人员就不得不深入到Windows的内核去编写属虿于系统级的虚拟设备驱动程序。Win98与Win95设备驱动程序的机理不尽相同,(Win32DriverMode)模式驱动程序蚄,而且还支持与Win95兼容的虚拟设备驱动程序VxD(VirtualDeviceDriver)。螄下面介绍了基于Windows9x平台的虚拟环境、虚拟设备驱动程序VxD的基本原理和肀设计方法,并结合开发工具VToolsD给出了一个为可视电话音频卡配套的虚拟设备蒇驱动程序VxD的设计实例。螇袄 Windows9x作为一个完整的32位多任务操作系统,-DOS,但为了保证软件的兼容性,Windows9x除了支持Win16应用程序和蒆Win32应用程序之外,还得支持MS-DOS应用程序的运行。Windows9x是通过虚拟机羄VM(VirtualMachine)环境来确保其兼容和多任务特性的。袂所谓Windows虚拟机(通常简称为WindowsVM)就是指执行应用程序的虚拟环蚆境,它包括MS-DOSVM和SystemVM两种虚拟机环境。在每一个MS-DOSVM中都只运芅行一个MS-DOS进程,而SystemVM能为所有的Windows应用程序和动态链接库羄DLL(DynamicLinkLibraries)提供运行环境。每个虚拟机都有独立的地址空间、羈寄存器状态、堆栈、局部描述符表、中断表状态和执行优先权。虽然Win16、莈Win32应用程序都运行在SystemVM环境下,但Win16应用程序共享同一地址空间,肃而Win32应用程序却有自己独立的地址空间。肄荿在编写应用程序时,编程人员经常忽略虚拟环境和实环境之间的差异,一般袆认为虚拟环境也就是实环境。但是,在编写虚拟设备驱动程序VxD时却不能这样做肆,因为VxD的工作是向应用程序代码提供一个与硬件接口的环境,为每一个客户虚膄拟机管理虚设备的状态,透明地仲裁多个应用程序,同时对底层硬件进行访问。螀这就是所谓虚拟化的概念。薈 VxD在虚拟机管理器VMM(VirtualMachineManager)的监控下运行,而VMM实袅际上是一个特殊的VxD。VMM执行与系统资源有关的工作,提供虚拟机环境(能产芄生、调度、卸载VM)、负责调度多线程占先时间片及管理虚拟内存等工作。VxD与羇VMM运行在其他任何虚拟机之外,VxD事实上就是实现虚拟机的软件的一部分。螂莀与大多数操作系统一样,Windows也是采用层次式体系结构。VMM和VxDs构成聿了Win95的ring0级的系统核心(应用程序运行在ring3级,ring1、ring2级未被莈使用),具有系统的最高优先权。Windows还提供一些以"drv"为后缀名的驱动程蒄序,主要是指串行口的通信程序和并行口的打印机程序。这些程序与VxD不同,它莃们是运行在ring3级上的。图1可以使你更好地理解Windows的虚拟环境。腿图蒅 ,VxD是VirtualDeviceDriver的缩写,但有人将它理解为虚拟任膂何驱动程序。实际上,VxD并非仅指那些虚拟化的某一具体硬件的设备驱动程序。艿比如某些VxD能够虚拟化设备,而某些VxD作为设备驱动程序却并不虚拟化设备,袆还有些VxD与设备并没有什么关系,它仅向其他的VxD或是应用程序提供服务。蚃羁 VxD可以随VMM一起静态加载,也可以根据需要动态加载或卸载。正是由于VxD荿与VMM之间的紧密协作,才使得VxD具有了应用程序所不具备的能力,诸如可以不芇受限制地访问硬件设备、任意查看操作系统数据结构(如描述符表、页表等)、莅访问任何内存区域、捕获软件中断、捕获I/O端口操作和内存访问等,甚至还可以虿截取硬件中断。葿尽管VxD使用32位平面存储模式(flatmemorymodel),但它的代码和数据仍蚇使用分段管理,段有六种类型,即实模式初始化、保护模式初始化、可分页、不袃可分页、静态和只调试(debugonly),每种类型又有代码段和数据段之分,所以螂VxD共有12个段。实模式代码段和数据段为16位(分段模式),其他段则是32位(蕿平面模式)。“实模式初始化”段包含了在Windows初始化过程的最初阶段VMM变袄为保护模式之前要执行的代码。静态加载的VxD此时可以查看Windows启动前的实薅模式环境,决定是否继续加载,并通知VMM。加载完毕后,VMM进入保护模式并执蒁

虚拟设备驱动程序的设计与实现 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数12
  • 收藏数0 收藏
  • 顶次数0
  • 上传人一花一叶
  • 文件大小23 KB
  • 时间2019-05-18