我已经在Linux中使用VMX设计了一个玩具管理程序,它可以与我的测试VM一起很好地工作。现在,我正在尝试使用玩具管理程序测试挂起并恢复我的测试虚拟机。我进行了以下操作以挂起VM。
VM以实模式启动,然后进入保护模式。它调用wrmsr,这将导致VMEXIT。系统管理程序获取VMEXIT,然后将CPU上下文(gprs,段reg,描述符表等)和VM的内存保存到磁盘文件中,然后退出。(未清除VMXON / VMCS区域)。
现在,重新启动VM加载程序,它将读取磁盘文件,将CPU上下文保存到VMCS字段中,并填充VM的内存。然后,通过调用“ vmlaunch”告诉系统管理程序启动VM。(在此之前,系统管理程序将调用vmxon,vmclear,vmptrld和vmwrite VMCS字段和来宾CPU上下文)。我的期望是虚拟机将从以前保存的RIP中恢复。
但失败并显示“无效的访客状态”
我用ch 26.3检查了这些字段,但是找不到任何提示。请在上面照亮你的灯。
慕桂英4014372