在Windows上编程检测VT-x或AMD-v是否已启用

6
在OSX或Linux上,在终端中查看CPU功能非常简单。在Windows上是否有一种方法可以访问CPU信息,特别是硬件辅助虚拟化功能?
我只找到了微软的工具:http://www.microsoft.com/en-us/download/details.aspx?id=592,但希望有一些不需要额外二进制文件的东西。
2个回答

3
我认为检查虚拟化是否启用的最佳方法是使用WMI并检查Win32_Processor类。 "VirtualizationFirmwareEnabled"字段的值应该告诉您是否已启用。
我在我的计算机上进行了测试,通过在BIOS中启用和禁用,此值似乎正确。

Win32_Processor: http://msdn.microsoft.com/en-us/library/aa394373%28v=vs.85%29.aspx

要检查支持什么,我认为您需要使用__cpuid()内置函数,信息类型为0x1和0x80000001来查询CPU功能。以下链接中可以找到示例。

CPUID维基百科:http://en.wikipedia.org/wiki/CPUID

__cpuid函数:msdn.microsoft.com/en-us/library/hskdteyh(VS.80).aspx


看起来微软的HAV工具不兼容Windows 10 :-( - Oren Ben-Kiki

0
你可以像这样在命令提示符中使用systeminfo工具:
这是一个示例,显示您需要进入BIOS来启用它:
C:\WINDOWS\system32>systeminfo | findstr /i "virtualization"
                           Virtualization Enabled In Firmware: No

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接