最終更新:2011-02-18 (金) 23:31:43 (4814d)  

WOW64
Top / WOW64

Windows on Windows 64

64bit版Windows上で、32bitプログラムを動かす仕組み

Intel64?/AMD64では、シームレスに32bitプログラムと64bitプログラムを動かせる。そのため、64bit環境で32bitプログラムを、64bitプログラムとほぼ同等のパフォーマンスで動かすことが可能だ

概要

  • 64bit Windowsでは、ソフトのデータタイプが32bitから64bitに拡張されている。そのため、Intel64?/AMD64の「64bit Mode?」で直接32bitプログラムを実行すると、CPU側では64bitレジスタがそのまま利用されてしまい、32bitプログラムではデータがおかしくなり、動作しなくなる。
  • WOW64では32bitプログラムで作られたアプリケーションを検出すると、CPUを32bitプログラムが動く「Compatibility Mode?」に変更する。これにより、64bit CPUでも、問題なく32bitプログラムが動作するようになっている。

制限

  • またWOW64は、32bitプログラムと64bitプログラムを、ひとつのプロセス内で混在させて実行できない。そのため、64bitプログラムで呼び出せるDLLは64bit DLLだけだし、32bitのDLLは呼び出せない。もちろん32bitプログラムからの64bit DLL呼び出しもできない。

システムフォルダレジストリ、プログラムファイル

  • 32bit
    • \Windows\SysWOW64
    • HKEY_LOCAL_MACHINE¥Software¥Wow6432Node
    • \Program Files(x86)
  • 64bit
    • \Windows\System32
    • HKEY_LOCAL_MACHINE¥Software¥
    • \Program Files

レジストリ

参考