使用Windows虚拟设备驱动程序(VxD)之2
http://tech.ddvip.com 2006年03月31日 社区交流
本文详细介绍使用Windows虚拟设备驱动程序(VxD)之2
八、VxD初始化
VMM初始化一个VxD时做下列工作:
1、装载实模式初始化段并调用实模式初始化过程。该过程可以完成阻止装载VxD,阻止启动Windows,指定设备实例数据和在内存中选择页面给
设备专用的工作。
2、装载VxD其它段到32位平坦内存模式的保护模式内存,并丢弃实模式初始化段。
3、发送Sys_Critical_Init消息到设备控制过程。禁止硬件中断,所以VxD应该尽可能地用较少的时间完成自身初始化。
4、发送Device_Init消息到设备控制过程。允许硬件中断,所以必须准备让VxD管理来自设备的中断。
5、发送Init_Complete消息到设备控制过程。
6、丢弃初始化代码和数据段,释放其它被使用的内存。VxD不能在处理完Init_Complete消息以后试图存取这些段中的过程和数据。
在初始化过程中的任何时刻,VxD都可以设置进位标志返回到VMM以阻止装载VxD。部分VMM服务,例如初始化信息服务只在初始化过程中有效。
九、实模式初始化
任何静态设备驱动程序都可以提供实模式初始化过程以在Windows切换到保护模式之前执行初始化任务。VMM装载VxD时调用该过程,该过程检查
有关的Windows环境,包括注册表和初始化文件中的有关设置以判断是否应该装载该VxD。该过程也可以给Windows返回信息以为每个虚拟机的实
例指定物理内存页保留给设备专用和数据项地址。要获得关于实模式初始化的更多信息,请参阅相关资料。
十、VxD服务
VxD可以提供服务功能(函数或过程——译者注)给VMM和其它VxD使用。这些服务让其它VxD可以直接访问该VxD的特征,允许测试和修改该VxD
责编:豆豆技术应用