Windows 7 上的 System32 和 SysWOW64

Dio*_*ogo 13 boot windows-7 64-bit

什么是“SysWOW64”,它是如何工作的?

在 Windows 7 启动期间,SysWOW64 和 System32 是否都使用/加载到 RAM 中?

Jde*_*eBP 23

执行摘要

微软有时会倒退,这是另一个例子。 System3264位的Windows系统目录,并SysWOW6432位Windows系统目录-完全围绕相反的方式,以什么样的目录名建议。

细节

在 Windows 中,有一个“Windows”目录和一个“System”目录,这在 Windows 是 16 位时一直如此。

Windows 程序应该使用系统 API 函数(例如SHGetKnownFolderPath()和 )来定位它们GetSystemDirectory();如果每个人都这样做,此时的世界将会大不相同。但是太多人愚蠢地将目录的实际名称 , 硬连线\Windows\System32到他们的程序中,然后将这些程序从 32 位 Windows 移植到 64 位 Windows。结果,很多程序都在目录中寻找64 位可执行文件和库,\Windows\System32它们的名称是硬连线的。(具有讽刺意味的是,从 16 位 Windows 迁移到 32 位 Windows 时也存在同样的问题 。16 位“系统”目录\Windows\System通常是。)

因此,Microsoft 的人选择创建\Windows\System3264 位 Windows 程序将在其中找到 64 位可执行文件和库的目录,并且因为32 位程序无论如何在 64 位 Windows 中都运行在填充层之上, 32 位程序对“System”目录的访问被重定向到一个新\Windows\SysWOW64目录。

于是就出现了现在的诡异局面。


dso*_*ano 12

WoW64代表 Windows 64 上的 Windows 32:

WoW64(Windows 32-bit On Windows 64-bit)是 Windows 操作系统的一个子系统,能够运行 32 位应用程序,并且包含在所有 64 位版本的 Windows 中——包括 Windows 2000 Limited Edition、Windows XP Professional x64 版本、IA-64 和 x64 版本的 Windows Server 2003,以及 64 位版本的 Windows Vista、Windows Server 2008 和 Windows 7。