[Beta 探究] 如何在 Windows Vista 版本 5098 和 5112 中使用 DWM

默认情况下,无法在 VMware 中启用 Windows Vista(Longhorn)版本 5098 和 5112 的 DWM。微软强制用户在这些版本中使用 LDDM 驱动程序,遗憾的是,不存在 VMware 的 LDDM 驱动程序。这意味着启用 DWM 和 Aero Glass 需要真正的硬件。

Screenshot of Longhorn build 5098 with Aero Glass
Longhorn 版本 5098 和 Aero Glass

对于上一个泄漏版本(5048)和下一个泄漏版本(5212),可以通过将注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DWM 下的 EnableMachineCheck 设置为 0 来轻松启用 DWM。当 EnableMachineCheck 设置为 FALSE0)时,它将跳过对 LDDM 驱动程序的检查。不用说,在 5098 和 5112 中这样做是行不通的。为什么?因为 EnableMachineCheck 是微软内部使用的后门,但是 5098 和 5112 是为公众编译的。

uxss.exe(UX 子系统)负责驱动程序和注册表检查,让我们来看看它。很明显,当使用 XPDM 驱动程序时,5098 和 5112 的 uxss.exe 中的这个额外 if 语句会导致 CDwmAppHost::VerifyDisplayModes() 失败。

Code responsible for 5098 and 5112 LDDM drive check
负责 LDDM 驱动程序检查的代码

删除该 if 语句后,您应该能够使用 XPDM 驱动程序和 EnableMachineCheck 后门启用 DWM。需要 4 字节(条件跳转)补丁将代码转换为:

LDDM check code removed
在删除该 if 语句之后

5098 和 5112 的 uxss.exe 补丁:

要在 VMware 中启用 5098 或 5112 的 DWM,请使用修补的 uxss.exe 替换原始的 uxss.exe,安装兼容的 VMware SVGA 驱动程序并将 EnableMachineCheck 设置为 0。确保在完成所有步骤后重新启动虚拟机。

一些截图:

Vista 5112 VMware Aero Demo - Control Panel
Vista 版本 5112 控制面板 Aero 演示
Vista 5112 VMware Aero Demo - DxDiag
Vista 版本 5112 DxDiag Aero 演示及系统信息

感谢桃花和我同事的翻译,下页是英文原文 :