32 ビット アプリケーションの実行
WOW64 は、32 ビット Windows ベースのアプリケーションを 64 ビット Windows でシームレスに実行できる x86 エミュレーターです。 これにより、32 ビット (x86) Windows アプリケーションを 64 ビット (x64) Windows でシームレスに実行できるほか、32 ビット (x86) および 32 ビット (ARM) Windows アプリケーションを 64 ビット (ARM64) Windows でシームレスに実行できます。 WOW64 はオペレーティング システムに付属しており、明示的に有効にする必要はありません。 詳細については、「WOW64 実装の詳細 を参照してください。
システムは、ファイルとレジストリの競合の防止を含む 64 ビット アプリケーションから 32 ビット アプリケーションを分離します。 コンソール、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.
このセクションでは、次の操作を行います。
- WOW64 でのパフォーマンスとメモリ消費量の
- WOW64 実装の詳細
- レジストリ リダイレクター の
- ファイル システム リダイレクター
- メモリ管理
- プロセッサ アフィニティ
- プロセス間通信
- アプリケーションインストール の
- WOW64 のデバッグの