自 Windows 8 或者 Windows Server 2012 或更高版本开始,在引导过程中,操作系统检测到 CPU0 上的TSC(TimeStampCounter,每个传递周期加1)等于或大于 0x40000000000000 时,会将其重置。操作系统不会重置其他 vCPU 上的TSC,两个vCPU TSC值之间产生的差异可能会导致“症状”部分所描述的问题。这仅适用于虚拟机硬件版本 10,因为 Windows 会重置使用旧版硬件(不支持 hypervisor.cpuid.v2 )的虚拟机上所有 CPU 上的 TSC。
对于使用旧版 BIOS 的虚拟机:
在硬件版本最高为 10 (vmx-10) 的虚拟机上,通过在断言INIT期间软重置完成 Windows 的重新引导。与硬重置(断言CPURST、PCIRST# 和 RSTDRV)之后不同,操作系统不应在软重置后将TSC重置为0x0。可使用配置选项改变软重置时不重置 TSC 的默认行为。
对于使用 EFI 的虚拟机:
这是 VMware EFI 固件的一个已知问题。在 VMware EFI 固件中好像可以使用硬重置,但实际执行软重置。