使用Windows虚拟设备驱动程序(VxD)之1
一、VxD介绍 本文介绍VxD的作用。如果Windows 95提供的标准VxD对你的硬件或者软件不能提供100%的兼容支持,你需要为你的硬件或者软件(包括16位和32位软件)创建VxD。如果你想让Windows用户使用你的硬件或者软件的某些新特征,你也可以创建VxD。 本文介绍如何写VxD,讲述了创建VxD所需的结构、过程和调用,还给出了创建和测试VxD的步骤。VxD可以是静态的或者动态装载的,下面的内容主要讲述静态VxD,不过关于格式和功能的内容两者都适用。 二、什么是VxD VxD是一个管理例如硬件设备或者已安装软件等系统资源的32位可执行程序,使得几个应用程序可以同时使用这些资源。Windows通过使用VxD允许基于Windows的应用程序实现多任务。VxD在与Windows的连接工作中处理中断,并在不影响其它应用程序的执行的情况下为特定的应用程序执行I/O操作。大多数VxD管理硬件设备,也有一些VxD管理或代替与之相关的软件,例如ROM BIOS例程。VxD可以包含必须在相应设备上执行的设备相关代码,也可以依靠其它软件去执行这些对设备的操作。任何情况下,VxD都会为每一个应用程序保留该设备状态的记录,保证无论何时一个应用程序继续执行该设备均处于正确状态。 一些VxD仅仅管理已安装软件,例如MS-DOS设备驱动程序或者TSR程序,这样的VxD通常包含仿真这些软件或者保护这些软件用于正在运行的应用程序的数据的代码。VxD有时还用于提高已安装软件的性能,Intel兼容CPU执行32位的VxD比执行16位的MS-DOS设备驱动程序或者TSR程序有更高的效率。 三、标准VxD Windows包括多种VxD,用于支持公共硬件设备和可安装软件。在某些情况下,可能需要修改VxD以提供新的特征或者支持非标准硬件。 Windows提供许多不准备修改,但能够辅助支持其他VxD的VxD。例如:许多VxD使用V86内存管理器(V86MMGR)和虚拟可编程中断控制器设备(VPICD)提供的功能保存V86模式内存和允许硬件中断请求。要取得开发VxD的帮助,Windows 95设备驱动程序开发工具包(DDK)包括了大量可用设备驱动程序的源代码。 四、创建VxD 你可以通过修改VxD例子程序或者自己手工创建来创建VxD。你可以用汇编语言来写VxD,也可以用高级语言(例如C语言)来写一部分VxD。 要创建一个VxD,需要以下步骤: 1、阅读硬件手册中关于描述这种型号硬件VxD的章节。 2、写出所需的控制过程,VxD服务和API函数。 3、建立为VxD标识适当模块名的模块定义文件,并引出需要的设备描述块。 4、汇编连接VxD。 5、用调试版Windows 95测试VxD,要获得更多关于调试VxD的信息,请参阅相关资料(可以用Soft-ICE调试——译者注)。 6、为VxD和相关文件建立安装文件(INF文件),通过修改注册信息和向Windows的SYSTEM目录和相关目录拷贝文件来安装VxD。 7、建立最终发行软件包。 五、你需要怎样开始 本文假定你是一位有经验的汇编语言程序员,而且熟悉Intel兼容处理器的指令集和系统结构。在某些特殊情况下,你还应该懂得下列内容: 保护模式和虚拟8086(即V86——译者注)模式。 平坦内存模式 中断和异常处理 保护和特权级 段和页式内存管理以及错误处理 输入和输出保护以及错误处理 本文也假定你已经熟练了解专门硬件的特征和相应的ROM BIOS例程以及其他可安装软件。 六、写一个VxD 许多情况下,写一个VxD用来代替一个由Windows 95提供的标准VxD。然而,大多数情况下,写一个VxD是用来支持新硬件设备或者软件的,在这 种情况下,通常手工创建一个VxD比修改已经存在的VxD要容易,原因是大多数VxD都是设备相关的。然而,已存在VxD的源代码需要尽可能地仔 细分析,原因是它们可能包含通用的格式和结构,以及说明怎样使用VMM和VxD服务去实现有用的功能。 写一个VxD需要下列步骤: 1、建立包含VxD各个段,VxD声明 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |