ア | イ | ウ | エ | オ |
カ | キ | ク | ケ | コ |
サ | シ | ス | セ | ソ |
タ | チ | ツ | テ | ト |
ナ | ニ | ヌ | ネ | ノ |
ハ | ヒ | フ | ヘ | ホ |
マ | ミ | ム | メ | モ |
ヤ | ユ | ヨ | ||
ラ | リ | ル | レ | ロ |
ワ | ヰ | ヴ | ヱ | ヲ |
ン |
A | B | C | D | E |
F | G | H | I | J |
K | L | M | N | O |
P | Q | R | S | T |
U | V | W | X | Y |
Z | 数字 | 記号 |
Win32アプリケーションをWin64上で動かすためのエミュレーションレイヤのこと。
Microsoft Windowsの64ビットマイクロプロセッサー対応版に搭載される、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アプリケーションを動かすことができる。
システムコールだけではなく、例外のディスパッチなども同様にフックし、必要な処理をしている。
具体的には、次のようなプログラムが稼働する。
コメントなどを投稿するフォームは、日本語対応時のみ表示されます