2011-12-20 26 views
3

我想知道当我的代码在虚拟机内运行时,是否有办法了解主机的物理CPU数量。获取虚拟机内物理处理器的数量

我正在寻找在Windows和VmWare(workstation/esxi)和HyperV下运行的C++/assembly解决方案。对不起,这个模糊的问题,但经过多次搜索,我不知道这是否有可能虚拟机内。

回答

5

虚拟机的概念是你的代码(甚至你的操作系统)不知道他们正在共享资源。

所以在第一次实例中,没有。唯一可能的解决方法是如果VM提供了明确性(我正在考虑VMWare Tools,但我不知道他们是否为您提供API)。

+0

绝对有一种方法可以使用VM API获取这些信息。来宾操作系统有一种方法来确定它是一个虚拟机,但我不确定是否有可能通过相同的渠道获得更详细的硬件信息。 (对于VmWare,一些汇编代码告诉它是VmWare,对于HyperV来说,这是一个WMI查询。)VM API通常包括向主机打开一个端口以获取更多信息 - 我希望得到在VM内完成的工作。 – xxbbcc 2011-12-20 19:20:00

+0

感谢您的答复 - 我怀疑可能无法得到这个级别的细节。我仍然希望能做到这一点。 – xxbbcc 2011-12-21 17:49:36