windows 7

Windows 7のSystem32とSysWOW64

SysWOW64」とは、どのようなもので、どのように機能するのですか?

Windows 7の起動時にSysWOW64とSystem32の両方がRAMに使用/ロードされるのでしょうか?

Executive summary

Microsoft は時折逆行を行いますが、これはその例の 1 つです。 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 ビットの実行可能ファイルとライブラリを見つけるディレクトリにすることを選択しました。 64 ビット Windows では、32 ビット プログラムによる「システム」ディレクトリへのアクセスは、新しい \Windows\SysWOW64 ディレクトリにリダイレクトされます。

だから、今のような奇妙な状況になっているのだ。




WoW64は、Windows 64 上の Windows 32 を表します。

WoW64(Windows 32-bit On Windows 64-bit)は、Windows 2000 Limited Edition、Windows XP Professional x64 Edition、IA-64およびx64版のWindows Server 2003、64ビット版のWindows Vista、Windows Server 2008、Windows 7など、すべての64ビット版Windowsに搭載されている32ビットアプリケーション実行可能なOSのサブシステムである。