windows 7

Windows 7上的System32和SysWOW64

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

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


Executive summary

微软有时会倒退,这是另一个例子。 System3264 位Windows 系统目录,而 SysWOW6432 位Windows 系统目录 — 与目录名称所暗示的完全相反。

Details

在Windows中,有一个 "Windows "目录和一个 "System "目录,这一点从Windows是16位时就一直存在。

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

因此,Microsoft 的人员选择将 \Windows\System32 设置为本地64 位 Windows 程序可以在其中找到 64 位可执行文件和库的目录,并且由于32 位程序无论如何都在shim 层之上运行64 位 Windows,32 位程序对“系统”目录的访问被重定向到一个新的 \Windows\SysWOW64 目录。

因此,现在出现了这种奇怪的情况。




WoW64代表 Windows 64 上的 Windows 32:

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