在进入VMX模式之前,系统需要设置CR4.VMXE[bit 13] = 1来使能VMX,然后通过VMXON进入VMX。系统通过VMXOFF指令退出VMX模式后,方可清除CR4.VMXE位。
IA32_FEATURE_CONTROL MSR(MSR 地址 3AH)也可以控制VMXON,当逻辑处理器复位时,这个MSR被清零。
Bit 0是锁定位。设置该位为0,VMXON会导致GP异常。设置该位为1,WRMSR会导致GP异常,上电复位前无法修改MSR,复位后该位会被清零。BIOS可以设置此位来启用或禁用VMX功能。
Bit 1在SMX操作中使能VMXON。
Bit 2在SMX操作之外启用VMXON。
注意:
如果在最后一次执行 GETSEC[SENTER]后没有执行 GETSEC[SEXIT],则逻辑处理器处于 SMX 运行状态。如果 GETSEC[SENTER]没有被执行,或者如果 GETSEC[SEXIT]在最后一次执行 GETSEC[SENTER]之后被执行,则逻辑处理器处于 SMX 操作之外。请参阅《英特尔® 64 和 IA-32 架构软件开发人员手册》第 2D 卷中的第 6 章,"安全模式扩展参考"。
在执行VMXON之前,软件应分配一个自然对齐的4KB字节的内存区域,逻辑处理器可使用该区域来支持VMX操作1。VMXON区域的地址(VMXON指针)由VMXON的操作数提供。第24.11.5节,"VMXON区域",详细介绍了软件应该如何初始化和访问VMXON区域。