使用Windows虚拟设备驱动程序(VxD)之1
消息的方法列表:
Begin_Message_Mode消息:当虚拟外壳设备需要给用户显示一个消息框但不能使用系统虚拟机和Windows函数时VxD收到此消息。虚拟键盘、鼠标 和显示设备保存当前状态,允许任何消息模式服务并为消息模式处理初始化相应设备。 Create_VM消息:这是当一个新的虚拟机被创建时VxD收到的第一条消息。VxD应该初始化与虚拟机有关的数据,特别是控制块。 Debug_Query消息:VxD从WDEB386调试器收到此消息。VxD可以显示调试列表和从调试终端读取用户命令。 Destroy_VM消息:这是VxD收到的第三条虚拟机终止消息。Simulate_Int和Exec_Int服务对获得此消息的虚拟机不再有效。 Device_Init消息:这是VxD收到的第二条消息。允许中断,大多数VxD分配和拷贝初始状态到系统虚拟机控制块中的设备指定部分,安装中断回 调函数和I/O保护异常以及指定实例数据。这时,Simulate_Int和Exec_Int服务变得有效。 End_Message_Mode消息:当虚拟外壳设备不再需要显示消息框时VxD收到此消息。虚拟键盘、鼠标和显示器设备恢复获得此消息的虚拟机以前保存 的状态,禁止任何消息模式服务。 Init_Complete消息:这是VxD收到的第三条消息,也是最后一条与系统初始化有关的消息。虽然大多数VxD都不处理此消息,但使用V86内存的 VxD应该在此消息返回前定位和申请内存。当VxD返回此消息时,VMM丢弃VxD的初始化代码和数据段。 Query_Destory消息:当虚拟外壳设备需要决定是否可以删除虚拟机时VxD收到此消息。VxD可以通过设置进位标志(CF——译者注)返回以阻止虚拟机被删除,在这种情况下VxD应该使用SHELL_Message服务来通知用户问题。 Reboot_Processor消息:当用户试图重新启动计算机时VxD收到此消息。可以重新启动计算机的VxD,例如键盘设备应该完成该工作。 Set_Device_Focus消息:当执行焦点从一个虚拟机移动到另一个虚拟机时VxD收到此消息。VxD恢复硬件设备到与虚拟机有关的状态。如果VxD使 用I/O捕获管理没有执行焦点时的虚拟机,VxD应该尽可能地移走太多的I/O捕获,使虚拟机运行尽可能地快一些。 Sys_Critical_Exit消息:这是VxD收到的最后一条消息。禁止中断,Simualte_Int和Exec_Int服务不再有效。VxD应该复位与之相关的硬件 设备,保证能够无问题地返回到实模式。 Sys_Critical_Init消息:这是VxD收到的第一条消息。中断仍然不被允许,所以VxD应该尽可能快地完成任务。大多数VxD完成下列任务: 安装和初始化需要支持来自设备的硬件中断和来自VMM或者其它VxD的软件中断的任何函数,为设备提供需要单独使用V86模式内存页的申请,例 如虚拟显示设备申请显示内存。初始化VxD服务需要的任何数据,这通常包括读取SYSTEM.INI文件中的设置。当处理此消息时,Simualte_Int和Exec_Int服务必须不被使用。 Sys_VM_Init消息:在Init_Complete消息之后VxD收到此消息。VxD应该初始化系统虚拟机的硬件和软件状态。如果VxD设置进位标志返回,VMM 终止所有进程并退出Windows。 Sys_VM_Terminate消息:这是VxD收到的第一条系统虚拟机终止消息。VxD可以开始为虚拟机终止做准备。Simulate_Int和Exec_Int服务有效,系 统虚拟机总是最后一个被终止的虚拟机。 System_Exit消息:这是当系统终止时VxD收到的第一条消息。VMM在发送Sys_VM_Terminate消息之后发送此消息,允许中断,但Simualte_Int 和Exec_Int服务不再有效。如果此消息来自一个致命错误的结果,VxD可以通过修改系统虚拟机的内存以恢复系统状态,使得Windows能够终止而 不死机。 VM_Critical_Init消息:这是当一个新的VxD(虚拟机——译者注)被创建时VxD收到的第二条消息。VxD可以通过设置进位标志返回以阻止虚拟 机被建立。禁止中断,Simualte_Int和Exec_Int服务不再有效。 VM_Init消 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |