2011-12-20 62 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