回答:
マイクロソフトは時々後方に物事を行いますが、これはこれのさらに別の例です。 System32
は64ビット WindowsシステムディレクトリでSysWOW64
あり、32ビット Windowsシステムディレクトリです。ディレクトリ名が示唆するものとはまったく逆です。
Windowsには「Windows」ディレクトリと「システム」ディレクトリがあり、これはWindowsが16ビットだった頃までずっと当てはまりました。
Windowsプログラムは、and などのシステムAPI関数を使用してそれらを見つけることになっています。そして、もし誰もがそれをやったなら、この時点で世界はまったく違うだろう。しかし、あまりにも多くの人々は愚か、ディレクトリの実際の名前をハードワイヤード、彼らのプログラムにして、64ビット版のWindowsに32ビットのWindowsからこれらのプログラムを移植しました。その結果、多くのプログラムがディレクトリ内で64ビットの実行可能ファイルとライブラリを探していました。その名前は固定されていました。(皮肉なことに、16ビットWindowsから32ビットWindowsに移行するときに同じ問題がありました。 通常、16ビットの「システム」ディレクトリはでした。)SHGetKnownFolderPath()
GetSystemDirectory()
\Windows\System32
\Windows\System32
\Windows\System
Microsoftの人々が作ることを選んだので、\Windows\System32
そのディレクトリをネイティブ以来、64ビット、Windowsプログラムは64ビットの実行可能ファイルとライブラリを見つけるだろう、と32ビットプログラムは、シム層の上で実行とにかく 64ビットのWindowsで、32ビットプログラムによる「システム」ディレクトリへのアクセスは、新しい\Windows\SysWOW64
ディレクトリにリダイレクトされます。
したがって、現在得られている奇妙な状況。
WoW64は、Windows 64上のWindows 32を表します。
WoW64(Windows 32ビットWindows 64ビット)は、32ビットアプリケーションを実行できるWindowsオペレーティングシステムのサブシステムであり、Windows 2000 Limited Edition、Windows XP Professionalなど、すべての64ビットバージョンのWindowsに含まれています。 x64 Edition、IA-64およびx64バージョンのWindows Server 2003、および64ビットバージョンのWindows Vista、Windows Server 2008、およびWindows 7。