32 ビット アプリケーションの実行

WOW64 は x86 エミュレーターであり、32 ビット Windows ベースのアプリケーションを 64 ビット Windowsでシームレスに実行できます。 これにより、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

このセクションの内容