使用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 

责编:豆豆技术应用

正在加载评论...