我爱Aspx >> VC.Net >> <b>详述C++语言的VxD与外界通讯的所有接口</b>一.什么是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;
【我对这篇文章有话说?】
<b>用VC进行COM编程所必须..[05-21]
<b>VC++实现文件夹时间属性..[05-21]
<b>Microsoft .NET完全介绍..[05-21]
<b>Microsoft .NET完全介绍..[05-21]
<b>Microsoft .NET完全介绍..[05-21]
<b>如何在VC6或者VC7下用 ..[05-21]
<b>如何获取屏幕上各颜色的..[05-21]
<b>用RealPlayer控件制作的..[05-21]
<b>采用循环双向链表, 能实..[05-21]
<b>VC++环境下利用管道和线..[05-21]