• 您的位置我爱Aspx >> VC.Net >> <b>详述C++语言的VxD与外界通讯的所有接口</b>
  • <b>详述C++语言的VxD与外界通讯的所有接口</b>

  • 作者:aspxer  来源:internet  日期:2007-5-21 23:14:18  关键字:
  • 详述C++语言的VxD与外界通讯的所有接口

    一.什么是VxD?

    从多任务操作系统Windows 3.1起,计算机中的任一物理设备x可同时被基于Dos或Windows的多个进程使用,这种一对多的关系称为"设备虚拟化",各进程通过运行在核心层的VxD(虚拟x设备驱动程序)存取物理设备x.操作系统提供给用户的软件服务也可以用VxD实现.计算机中的其它资源,如CPU,内存等也可同时被多个进程使用,各进程在系统提供的虚拟机(VM)环境下存取这类资源.

    VxD可由虚拟机管理器(VMM)在开机时装入核心层(称静态装入,即置VxD于c:\windows\system目录下,在c:\windows\system.ini文件中,对节[386Enh]加一行"device=此VxD文件名"),或由应用程序实时装入(称动态装入),而后,各进程便可存取锁定在内存中的VxD数据区,以实时控制VxD的行为,VxD的内部结构可防止两个进程同时存取其数据区.VxD通过响应VMM发给它的事件与外界交互.

    Windows 95中,基于Dos的每个进程在单独的VM中运行(称在V86模式下运行),既可按Dos单进程方式,在640k低内存中运行(称在实模式下运行),又可利用多进程环境的优点,在整个内存中运行(称在保护模式下运行),以通过95的DPMI接口存取内存高端的Windows图形环境.其它16位或32位应用程序均在同一系统VM中运行.

    下面只讨论95环境下的VxD.

    二. VxD的创建:

    1. 由汇编语言创建VxD:需安装微软公司的Win32 SDK及DDK.

    2. 由C或C++语言创建VxD:需安装VC2.0或BC4.0,及Vireo Software公司的VToolsD软件包.VToolsD含3个实用工具:可创建VxD框架的QuickVxD;可动态装卸VxD的VxD Loader;可显示内存VxD特性的VxD Viewer;

    我对这篇文章有话说?
  • 广告位招租,广告代号:content_468_15
  • 上一篇:<b>Windows 9X硬件中断设备驱动程序的开发</b>
    下一篇:<b>用VC进行COM编程所必须掌握的理论知识</b>
  • 相关文章