<b>利用Windows虚拟设备驱动程序(VxD)之1</b>[VC/C++编程]
本文“<b>利用Windows虚拟设备驱动程序(VxD)之1</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
1、VxD介绍
本文介绍VxD的作用.假如Windows 95供应的尺度VxD对你的硬件大概软件不能供应100%的兼容支持,你需求为你的硬件大概软件(包含16位和32位软件)成立VxD.假如你想让Windows用户利用你的硬件大概软件的某些新特点,你也可以成立VxD.
本文介绍若何写VxD,报告了成立VxD所需的构造、历程和调用,还给出了成立和测试VxD的步骤.VxD可以是静态的大概动态装载的,下面的内容主要报告静态VxD,不过关于格局和功效的内容二者都实用.
2、什么是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程序有更高的效率.
3、尺度VxD
Windows包含多种VxD,用于支持大众硬件设备和可安装软件.在某些情形下,大概需求改正VxD以供应新的特点大概支持非尺度硬件.
Windows供应很多不预备改正,但可以帮助支持其他VxD的VxD.比方:很多VxD利用V86内存管理器(V86MMGR)和虚拟可编程中止掌握器设备(VPICD)供应的功效保存V86情势内存和答应硬件中止恳求.要获得开辟VxD的帮忙,Windows 95设备驱动程序开辟工具包(DDK)包含了大量可用设备驱动程序的源代码.
4、成立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、成立终究发行软件包.
5、你需求怎样开始
本文假定你是一位有经验的汇编语言程序员,并且熟习Intel兼容处理器的指令集和系统构造.在某些特别情形下,你还应当晓得下列内容:
保护情势和虚拟8086(即V86——译者注)情势.
平展内存情势
中止和非常处理
保护和特权级
段和页式内存管理以及错误处理
输入和输出保护以及错误处理
本文也假定你已经纯熟理解专门硬件的特点和呼应的ROM BIOS例程以及其他可安装软件.
6、写一个VxD
很多情形下,写一个VxD用来替换一个由Windows 95供应的尺度VxD.但是,大大都情形下,写一个VxD是用来支持新硬件设备大概软件的,在这
种情形下,普通手工成立一个VxD比改正已经存在的VxD要简单,缘由是大大都VxD都是设备相关的.但是,已存在VxD的源代码需求尽大概地仔
细解析,缘由是它们大概包含通用的格局和构造,以及阐明怎样利用VMM和VxD服务去实现有效的功效.
写一个VxD需求下列步骤:
1、成立包含VxD各个段,VxD声明,设备掌握历程,处理系统掌握消息历程的基本部份和API历程的基本部份的VxD框架.
2、加入实情势初始化历程(可选).
3、完成处理初始化消息的历程.这些历程应当可以初始化掌握块,分配全局内存以及安装中止、I/O捕捉和页错误回调历程.
4、完成处理差别中止和错误的回调历程.
5、为服务加入服务表定义和声明(可选).
6、完成API历程(可选)
7、完成处理系统掌握消息的历程以成立和删除虚拟机.
以上是“<b>利用Windows虚拟设备驱动程序(VxD)之1</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |