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

このセクションの内容