开始执行客户指令流。 描述guest虚拟机的虚拟机控制块(VMCB)的物理地址取自rAX寄存器(用于形成地址的RAX部分由有效地址大小决定)。 VMCB的物理地址必须在4K字节边界上对齐。
VMRUN将主机处理器状态的子集保存到VM_HSAVE_PA MSR中物理地址指定的主机状态保存区域(这个区域存储的值可以直接修改,结果未知,)。 然后,VMRUN从VMCB以rAX中指定的物理地址加载客户处理器状态(和控制信息)。 然后,处理器执行客户指令,直到触发了几个拦截事件(在VMCB中指定)中的一个。当拦截事件发生时,处理器将访客状态的快照存储回VMCB,重新加载主机状态,并在VMRUN之后的指令处继续执行主机代码指令。
这是一个安全虚拟机(SVM)指令。 CPUID Fn8000_0001_ECX [SVM] = 1表示支持SVM体系结构和SVM指令。有关使用
CPUID指令,请参见CPUID指令的参考页(第160页)。
如果未启用SVM,则此指令会生成#UD异常。 请参阅“AMD64架构程序员手册”第2卷:系统说明中的“启用SVM”,订购号为#24593。
系统管理模式不支持VMRUN指令。 尝试从SMM处理程序中执行此指令导致的处理器行为未定义。
Action