WOW64
読み:ワウろくじゅうよん
外語:WOW64: Windows On Windows 64

 Win32アプリケーションをWin64上で動かすためのエミュレーションレイヤのこと。
目次

概要
 Microsoft Windows64ビットマイクロプロセッサー対応版に搭載される、32ビットアプリケーション互換性維持の仕組みである。
 64ビット版Windowsは、Windowsと名は付いても32ビット版Windowsとは非互換であり、そのままでは従来のアプリケーションは何一つ使うことができない。これは、16ビットWindowsに対する32ビットWindowsも同様であった。
 通常のアプリケーションだけでなく、DLLなども同様で、32ビットプロセスは64ビットDLLを使うことはできず、また64ビットプロセスも32ビットDLLを使うことはできない。
 そこで、APIに互換性がない新しいWindowsで従来のアプリケーションを動作させるために導入されている。

特徴

機構
 32ビットアプリケーションのシステムコール(Win32)をフックし、64ビットシステムコール(Win64)に変換するプログラムである。
 具体的には、Win32アプリケーションのシステムコールをWOW64がフックし、64ビットモードに移行、引数などをWin64 API用に変換してOSに対してシステムコールを発行する。戻り値を得たら、再び元の互換動作モードに復帰し、Win32 API用に変換した戻り値をアプリケーションに対して返す。
 これにより、32ビットアプリケーションはWin32環境にいるのと同様の環境が得られ、64ビットWindows上でありながらWindows XP用などのWin32アプリケーションを動かすことができる。
 システムコールだけではなく、例外のディスパッチなども同様にフックし、必要な処理をしている。
 具体的には、次のようなプログラムが稼働する。

制約
 WOW64はWin32アプリ用であるため、Win16アプリを動作させることは出来ない。
 これは、x64では、仮想86モード機能がレガシーであるとして削除されたためである。このためWin32には16ビットアプリ実行環境WOW32が搭載されたが、Win64でのWOW64では16ビットアプリ実行環境を実装することが出来なかった。

再検索