Windows下硬件中方式缀虚拟设备驱动法式开辟和编程方式
时间: 2019-02-11 14:35    来源: 未知|作者:admin 浏览次数:

  在Windows95三年后推出的Windows98尽管扩充了很多新的设施驱动特征,如对AGP、USB、DVD的支撑,但在内核上却和Windows95根基一样,它们都是基于DOS内核的操作体系。Windows98体系焦点(Kernel)由虚拟机办理器(VMM)和VxD(Virtual Device Driver)的调集构成。Kernel供给了900多个办事函数来办理内存、节制物理设施、处置中缀、建立收集和谈栈、办理文件体系等,这些办事函数都能够被本人写的VxD挪用。虚拟机(VM)是一个可运转的使命,蕴含使用法式、支持软件、内存和CPU寄放器。在Windows98下有体系虚拟机和DOS虚拟机两种。虚拟机办理器(VMM)是在体系级焦点运转的32位庇护模式操作体系,它运转于Ring0,并且不成重入。VMM次要功效是建立、运转、监控和终止虚拟机。VxD即虚拟设施驱动法式,是用来扩展Windows操作体系功效的一类法式。因为VxD运转在体系的Ring0级,具有与操作体系划一的级别,所以咱们可操纵它来支撑硬件设施的办理。虚拟可编程中缀节制器(VPICD)是担任办理所有硬件中缀事务的法式,它自身也是一种VxD,能供给缺省的中缀处置函数或者答应其它VxD重载中缀处置函数。

  微软为驱动法式的开辟供给了设施驱动法式东西箱(DDK),基于汇编言语的编程体例和很多VMM办事都利用寄放器的挪用体例,确实很是难学,没有深挚的汇编言语和硬件根本很难在短时间里开辟出本人的VxD。

  Holopundits联手微软 推出一款能转换至虚拟剖解尝试室的AR使用法式。

  有了权限级别,操作体系就无机会在中缀和I/O操作上发生撔槟铍结果。因为操作体系的权限为0级,它就能够捕捉权限不为0级的使用法式的中缀和I/O请求,然后成立缓冲行列步队,再逐个进行串行处置。为了使本人的使用法式也能间接处置硬件,就必要编写特地的VxD。因为VxD是作为操作体系的组件运转于第0级,因此能够操纵它来捕捉特定的硬件操作,完成咱们必要的使命。

  以上实例咱们已在VTOOlsD3.01和VC++6中调试通过,并已顺利地在咱们开辟的小型及时光谱能量辐射仪中获得使用。

  美国微软公司出品的Windows98以其敌对的图形用户界面,在我国博得了普遍的市场。在给泛博办公情况事情职员带来便利的同时,也给不少工程手艺职员带来了一些贫苦。一些本来在DOS下很容易编出的节制硬件的法式,此刻在Windows98下就不那么容易实现了。作为一个完美的操作体系也必需能节制硬件,象DOS那样间接与硬件打交道是Windows98不倡导的。它必要开辟特地的硬件设施驱动法式,即通过一系列的虚拟设施驱动法式来办理硬件,如:进行中缀相应、I/O端口读写或间接存储器存取(DMA)。Windows98内查究理机制很是庞大,因此编写虚拟驱动法式也变得好不容易,要想编写虚拟驱动法式,就必需对Windows98的内核有所领会。

  Intel的80x86CPU系列芯片可在三种模式下事情:实模式、庇护模式和V86模式。实模式是MS-DOS的运转情况。Windows98只操纵了两种模式:庇护模式和V86模式。庇护模式给咱们带来良多优胜性,如使用法式不再受1M内存的制约,理论上,在庇护模式下,CPU能够进行4096M内存的寻址。但在庇护模式下,所有的使用法式都有权限级别(Privilege Level)。权限级别按优先秩序分为四等:0、1、2、3。0级是第一流别,操作体系就运转在0级,运转在Ring0级的使用法式能够施行所有的指令并可间接对硬件、中缀和文件体系进行物理拜候。若是使用法式具有的权限级别是第3级,那么它能施行的指令是无限的,对硬件的良多间接操作是不克不及实现的。在Windows中,正常的使用法式是运转在Ring3级的(如用Visual C++、Borland C++、Visual Basic、Delphi、C++ Builder等SDK东西开辟出的使用法式)。它们享有的权限是最低的,遭到了庇护模式的摫;它们没有权限去绕过操作体系间接对硬件操作。

  VxD作为此刻风行的编程手艺已逐步遭到普遍的关心,在工程手艺中必将有着广漠的使用前景。进修、利用此手艺将在科学钻研中给咱们带来便当。

  法式员可操纵C或C++言语编写本人的VxD,而不必费心很多繁琐的细节。它的根基编程方式是:用VToolsD自带的Quick VxD法式倏地天生法式框架,在VC++或Borland C++中翻开此框架的工程文件,并写进特定的处置代码,编译后就可获得所需的VxD文件。

Power by DedeCms