我如何确定我正在查看的Windows服务器是否使用了能够使用HAL的多处理器?

我有一个Windows Server 2012 VM只分配了一个单一的核心; 我想知道在请求将更多内核添加到VM之前,机器的HAL是否具有多核能力。

是否有一些WMIC命令,registry值或其他指标?

我知道在以前的Windows版本,我可以通过查看%SystemRoot%\ System32 \ hal.dll的“oroginal文件名”属性来告诉Windows Server 2012只显示“hal.dll”。

我查看了MACHINEregistryconfiguration单元,但找不到任何有意义的东西。 我也谷歌“网站:microsoft.com窗户服务器hal多处理器”,但没有任何结果是有帮助的。

在x64机器上(而Server 2012始终是x64),只有一个名为Hal.dll的HAL映像。 (它总是有SMPfunction的。)

然而,作为一个学术实验,如果你想看看你正在运行的是什么HAL,你可以使用Windbg并发出命令lm vm hal 。 当然,在Server 2012上,它始终是Hal.dll。

在较旧的x86版本的Windows上,可能会在此处看到不同的HAL,例如Halacpi.dllHalmacpi.dll

这里是一个使用LiveKD(来自Sysinternals)的例子:

livekd