Opened 8 years ago
Last modified 5 years ago
#15490 closed defect
On Windows RS builds 14361 and higher hyper-v and vbox don't work due to hyperguard — at Initial Version
| Reported by: | Trance | Owned by: | |
|---|---|---|---|
| Component: | VMM | Version: | VirtualBox 5.0.20 |
| Keywords: | redstone hyperv hypervisor CR4 | Cc: | |
| Guest type: | Windows | Host type: | Windows |
Description
Hyperguard (starting with TH2) blocks programs from scribbling over control registers like CR4. In RS1, Hyper-V opportunistically enables secure kernel which brings in Hyperguard when the Hyper-V role is enabled.
Vbox needs to do something here, detect an incompatible hypervisor and not bugcheck
HyperGuard intercepts the write to CR4 and injects a #GP (here is the value VirtualBox tried to write: rax=0000000000000274). VirtualBox does not require VT-x to run 32-bit guests. In RS1, HyperGuard / secure kernel is always present when the hypervisor is present. That means that if a customer installs Hyper-V and VirtualBox, the machine will always bugcheck when the first VirtualBox VM is started. This was not the case in TH2.
STACK_TEXT:
ffffde009e2ac668 ffffde0099dca712 : 0000000000000010 fffff8021eec16c6 0000000000000000 ffff858f1cfea1a0 : 0xffffde00`99dca890
ffffde009e2ac670 0000000000000010 : fffff8021eec16c6 0000000000000000 ffff858f1cfea1a0 000000000000639f : 0xffffde00`99dca712
ffffde009e2ac678 fffff8021eec16c6 : 0000000000000000 ffff858f1cfea1a0 000000000000639f fffff8021ef2aff0 : 0x10
ffffde009e2ac680 fffff8021eec2ae8 : 00000000c8077200 ffffde009e2acb80 000000000022821c ffff858f20a02680 : VMMR0!VMMR0EntryFast+0xf96
ffffde009e2ac6e0 fffff8021cb66250 : 0000000000000000 fffff80081896aa9 fffff6bffe4b27b8 ffff858f1faedd00 : VMMR0!VMMR0EntryEx+0xe8
ffffde009e2ac750 fffff8021cb74140 : ffff858f00000000 0000000000000030 0000000000000030 0000000000000000 : VBoxDrv!SUPR0PageFree+0x1e30
ffffde009e2ac7b0 fffff800818c07de : fffff8021cb73e70 000000000022821c 000000000531f9c8 ffffde0000000030 : VBoxDrv!SUPR0SuspendVTxOnCpu+0x29f0
ffffde009e2ac850 fffff800818bf9c6 : ffff858f1faedd00 0000000000000000 0000000000000000 0000000000000000 : ntIopXxxControlFile+0x51e [d:\rs1\minkernel\ntos\io\iomgr\internal.c @ 10464]
ffffde009e2aca20 fffff800815e1193 : fffff6fb7dafff90 fffff6fb7dbed7f8 ffffc7cbc9738199 0000000000000000 : ntNtDeviceIoControlFile+0x56 [d:\rs1\minkernel\ntos\io\iomgr\devctrl.c @ 110]
ffffde009e2aca90 00007ffcb7dc1344 : 0000000000000000 0000000000000000 0000000000000000 0000000000000000 : ntKiSystemServiceCopyEnd+0x13 [d:\rs1\minkernel\ntos\ke\amd64\trap.asm @ 2564]
000000000531f928 0000000000000000 : 0000000000000000 0000000000000000 0000000000000000 0000000000000000 : 0x00007ffc`b7dc1344

