WOW64は、32ビットWindowsベースのアプリケーションを64ビットWindowsでシームレスに実行できるx86エミュレーターです。これにより、32ビット(x86)Windowsアプリケーションを64ビット(x64)Windowsでシームレスに実行できます。また、32ビット(x86)および32ビット(ARM)Windowsアプリケーションを64ビット( ARM64)Windows。 WOW64実装の詳細
システムは、32ビットアプリケーションを64ビットアプリケーションから分離します。これには、ファイルとレジストリの衝突の防止が含まれます。コンソール、GUI、およびサービスアプリケーションがサポートされています。システムは、カットアンドペーストやCOMなどのシナリオで32/64境界を越えた相互運用性を提供します。ただし、32ビットプロセスは実行用に64ビットDLLをロードできず、64ビットプロセスは実行用に32ビットDLLをロードできません。この制限は、データファイルまたはイメージリソースファイルとしてロードされたDLLには適用されません。詳細については、LoadLibraryExを参照してください。
32ビットアプリケーションは、IsWow64Process関数を呼び出すことにより、WOW64で実行されているかどうかを検出できます(Windows 10を対象とする場合はIsWow64Process2を使用します)。アプリケーションは、GetNativeSystemInfo関数を使用して、プロセッサに関する追加情報を取得できます。
64ビットWindowsは、16ビットWindowsベースのアプリケーションの実行をサポートしていないことに注意してください。主な理由は、64ビットWindowsではハンドルの有効ビットが32ビットであるためです。したがって、データを失うことなく、ハンドルを切り捨てて16ビットアプリケーションに渡すことはできません。 16ビットアプリケーションを起動しようとすると、エラーERROR_BAD_EXE_FORMATで失敗します。
参考記事:Running 32-bit Applications
●WOW64でのパフォーマンスとメモリ消費
●WOW64実装の詳細
●レジストリリダイレクター
●ファイルシステムリダイレクタ
●WOW64でのメモリ管理
●プロセッサアフィニティ
●プロセス間通信
●アプリケーションのインストール
●WOW64のデバッグ