Windows Latestは2026年10月20日(現地時間)、「Why Windows 11 keeps 64-bit files in System32 and 32-bit files in SysWOW64, according to Microsoft」において、Windows 11におけるSystem32とSysWOW64の役割や、32ビットアプリとの互換性を維持する仕組みについて解説した。

64ビット版Windows 11では、System32に64ビット用のシステムファイルが格納され、SysWOW64には32ビット用のファイルが置かれる。フォルダー名と格納内容が直感に反する背景には、過去のWindowsとの互換性を守るための設計判断があるという。

System32の名称が残された背景

16ビット版Windowsでは、システムファイルの保存先として「C:\Windows\System」が使われていた。32ビット版Windowsの登場時に「C:\Windows\System32」が追加され、32ビット用ファイルの格納先となった。フォルダー名の「32」は、この時代に由来する。

その後、64ビット版Windowsを開発する際、Microsoftは既存ソフトへの影響に直面した。当時の多くのプログラムは、システムフォルダーの場所を取得する関数を使わず、System32というパスをプログラム内に直接記述していた。これらを64ビット対応に再コンパイルしても、参照先はSystem32のままだった。

また、バッチファイルがSystem32\reg.exeを指定している場合、同フォルダーに32ビット版のツールを置くと、意図せずレジストリーの32ビットコピーを編集する問題が生じた。

また、WOW64はレジストリーの一部についても参照先を切り替える仕組みを備えている。32ビットアプリからのアクセスは、必要に応じて32ビット用の領域「HKEYLOCALMACHINE\Software\Wow6432Node」に振り向けられる。さらに、32ビットプロセスでは環境変数「%ProgramFiles%」が通常「C:\Program Files (x86)」を指す。。

WOW64による自動リダイレクト

Microsoftは、32ビットアプリを64ビット版Windows上で動かす互換レイヤーとしてWOW64を提供している。WOW64は「Windows 32-bit on Windows 64-bit」の略称だ。

32ビットプロセスは64ビットDLLを読み込むことはできず、逆も同様となる。この制約に対応するため、WOW64のファイルシステムリダイレクターは、32ビットアプリがSystem32を参照すると、要求をSysWOW64へ自動的に振り向ける。

Windows Latestによると、WOW64はレジストリーにも別の参照領域を設け、32ビットアプリの一部アクセスを32ビット用の領域「HKEY_LOCAL_MACHINE\Software\Wow6432Node」へ振り向けるという。また、Windowsの環境変数「%ProgramFiles%」は「Program Files (x86)」を指すと説明した。

ただし、リダイレクト対象のファイルを開く際にユーザーアカウント制御(UAC)の確認画面が表示される場合、Microsoftの説明では通常のリダイレクトが適用されず、要求したファイルの64ビット版が起動することがある。この場合、開発者はSysWOW64内のパスを明示するか、32ビットアプリを管理者権限で実行する必要があるとしている。

WOW64を試す

WOW64による自動リダイレクトの検証には、コマンドプロンプトが使用できる。64ビット版は「C:\Windows\system32\cmd.exe」に、32ビット版は「C:\Windows\SysWOW64\cmd.exe」に配置されており、ショートカットキー「Win+R」の「ファイル名を指定して実行」ダイアログから起動できる。

この起動方法を使用するとカレントフォルダーが各リダイレクト先となる。試しにWindowsの環境変数「%ProgramFiles%」を出力させると、それぞれ「C:\Program Files」と「C:\Program Files (x86)」を表示する。

32ビットプロセスから本来のSystem32(64ビット環境)にアクセスするための仮想フォルダーである「Sysnative(C:\Windows\Sysnative)」へのアクセスでも検証できる。64ビット版は失敗するのに対し、32ビット版ではエラーを表示することはない。また、32ビット版から「C:\Windows\Sysnative\cmd.exe」を実行することで、64ビット版に切り替えることも可能だ。

  • 64ビット版のコマンドプロンプト(上)と、32ビット版(下)の動作例

    64ビット版のコマンドプロンプト(上)と、32ビット版(下)の動作例

なお、System32内でもリダイレクトの対象外となるサブフォルダーが6つある。catroot、catroot2、driverstore、drivers\etc、logfiles、spoolだ。Microsoftは例外の理由を明示していない。Windows Latestの記者は、hostsファイルなどの32ビットアプリと64ビットアプリで共有するデータを扱うためではないかとの見方を示している。

System32とSysWOW64の名称が格納するファイルの種類と一致しない背景には、過去のWindowsとの互換性を維持するための設計判断がある。現在もWOW64によるファイルシステムやレジストリーのリダイレクトが、32ビットアプリを64ビット版Windows上で動作させる仕組みを支えている。