Windows Server 2003 および Windows XP の64ビットバージョンでの32ビットプログラムの互換性に関する考慮事項の概要

この記事では、64ビットバージョンの Windows Server 2003 および Windows XP 上で実行されている32ビットプログラムの互換性に関する考慮事項と制限事項について説明します。

元の製品バージョン:  Windows 10 –すべてのエディション、Windows Server 2012 R2
元の KB 番号:  896456

要約

64ビットバージョンの Microsoft windows Server 2003 および Microsoft Windows XP の場合は、Microsoft windows-32-64 (WOW64) サブシステムを使用して、変更を加えずに、32ビットプログラムを実行します。 64ビット版の Windows Server 2003 および Windows XP の場合、16ビットのバイナリまたは32ビットのドライバーはサポートされていません。 16ビットのバイナリまたは32ビットのドライバーに依存するプログラムは、プログラムの製造元がプログラムの更新を提供しない限り、Windows Server 2003 または Windows XP の64ビットバージョンでは実行できません。

プログラムの互換性またはパフォーマンスに影響を与える考慮事項がある場合があります。 Windows Server 2003 または Windows XP のいずれかの64ビットバージョンでプログラムをテストすることによって、プログラムに互換性やパフォーマンスの問題が発生するかどうかを判断できます。

この記事では、Windows Server 2003 および Windows XP の64ビットバージョンで32ビットプログラムを実行する際の互換性に関するいくつかの考慮事項について説明します。 この記事では、32ビットと64ビットの両方のバージョンの Windows Server 2003 と Windows XP、またはさまざまな64オペレーティングシステムを比較していません。 この記事では、32ビットバイナリと64ビットバイナリの違いを理解していることを前提としています。

この記事で説明する互換性の考慮事項は、64ビットバージョンの Windows Server 2003 および Windows XP に適用されますが、この記事は主に Microsoft Windows Server 2003 Service Pack 1 (SP1) リリース用に記述されています。 Windows Server 2003 SP1 と以前の64ビットバージョンの Windows Server 2003 の間に存在する主要な機能の相違点については、特に注意してください。

トップに戻る

概要

X64 ベースのバージョンの Microsoft Windows Server 2003 および Microsoft Windows XP Professional x64 Edition は、ネイティブの64ビットプログラムを実行するために最適化されています。 また、x64 ベースのバージョンの Windows Server 2003 および Windows XP Professional x64 Edition では、WOW64 サブシステムを使用して、32ビットのプログラムを実行します。

トップに戻る

32ビットプログラムの実行

WOW64 サブシステムを使用すると、32ビットプログラムが、x64 ベースのバージョンの Windows Server 2003 および Windows XP Professional x64 Edition で変更されずに実行されるようになります。 WOW64 サブシステムは、x64 ベースのバージョンの Windows Server 2003 および Windows XP Professional x64 Edition に32ビット環境を作成することによって、これを行います。 WOW64 サブシステムの詳細については、Microsoft プラットフォーム SDK ドキュメントの「64ビット版 Windows」セクションの「32ビットアプリケーションの実行」トピックを参照してください。 このドキュメントを表示するには、次の Microsoft Web サイトにアクセスしてください。 https://msdn2.microsoft.com/library/aa384249.aspx

トップに戻る

プログラムのパフォーマンスに関する考慮事項

WOW64 サブシステムは、x64 ベースのバージョンの Windows Server 2003 および Windows XP Professional x64 Edition に32ビット環境を作成します。 一部の32ビットプログラムでは、これらのオペレーティングシステムでは、Windows Server 2003 および Windows XP の32ビットバージョンよりも実行速度が遅くなることがあります。 たとえば、32ビット版のプログラムでは、Windows xp professional x64 Edition では、Microsoft Windows XP Professional よりも実行速度が遅くなることがあります。 または、多くのメモリを必要とする一部の32ビットプログラムでは、x64 ベースのバージョンの Windows Server 2003 および Windows XP Professional x64 Edition のパフォーマンスが向上する可能性があります。 このパフォーマンスが向上するのは、x64 ベースのバージョンの Windows Server 2003 および windows XP Professional x64 Edition では、32ビットバージョンの windows Server 2003 および Windows XP Professional と比べて、より多くの物理メモリがサポートされるためです。

64ビットと32ビットの両方のバージョンの Windows のメモリ管理の相違点の詳細については、Microsoft Platform SDK ドキュメントの「メモリ管理について」セクションの「仮想アドレススペース」のトピックを参照してください。 このドキュメントを表示するには、次の Microsoft Web サイトにアクセスしてください。 https://msdn2.microsoft.com/library/aa366912.aspx

トップに戻る

WOW64 サブシステムの制限

WOW64 サブシステムは、次のプログラムをサポートしていません。

  • 16ビットオペレーティングシステム用にコンパイルされたプログラム
  • 32ビットオペレーティングシステム用にコンパイルされたカーネルモードのプログラム

トップに戻る

16ビットプログラム

X64 ベースのバージョンの Windows Server 2003 および Windows XP Professional x64 Edition は、16ビットプログラムまたは16ビットプログラムコンポーネントをサポートしていません。 X64 ベースのバージョンの Windows Server 2003 または Windows XP Professional x64 Edition で16ビットプログラムを実行するために必要なソフトウェアエミュレーションにより、これらのプログラムのパフォーマンスが大幅に低下します。

16ビットのインストーラーは、32ビットのプログラムをインストールして構成するためによく使用されます。 また、一部の32ビットプログラムでは、16ビットコンポーネントが正常に実行される必要があります。 16ビットコンポーネントを必要とする32ビットプログラムは、インストール後に正しく実行されることがありますが、16ビットインストーラーを使用して32ビットプログラムをインストールすることはできません。 16ビットコンポーネントを必要とするプログラムは、x64 ベースのバージョンの Windows Server 2003 および Windows XP Professional x64 Edition では実行できません。

16ビットのコンポーネントを必要とする32ビットのプログラムが16ビットのファイルまたはコンポーネントを実行しようとすると、32ビットのプログラムによって、システムログにエラーメッセージが記録されます。 オペレーティングシステムは、32ビットプログラムがエラーを処理できるようにします。

プログラムが16ビットコンポーネントを必要とするかどうかを判断するには、プログラムをインストールして実行します。 プログラムでエラーメッセージが生成される場合は、x64 ベースのバージョンの Windows Server 2003 および Windows XP Professional x64 Edition と互換性のある更新プログラムについて、プログラムの製造元に問い合わせてください。

トップに戻る

32ビットドライバー

X64 ベースのバージョンの Windows Server 2003 および Windows XP Professional x64 Edition は、32ビットのドライバーをサポートしていません。 すべてのハードウェアデバイスドライバーおよびプログラムドライバーは、x64 ベースのバージョンの Windows Server 2003 および Windows XP Professional x64 Edition に特化してコンパイルする必要があります。

32ビットプログラムが、x64 ベースのバージョンの Windows Server 2003 SP1 または Windows XP Professional x64 Edition を実行しているコンピューターに32ビットドライバーをインストールしようとすると、ドライバーのインストールが失敗します。 この現象が発生すると、x64 ベースバージョンの Windows Server 2003 SP1 または Windows XP Professional x64 Edition は、32ビットプログラムにエラーを報告します。

X64 ベースのバージョンの Windows Server 2003 または Windows XP Professional x64 Edition を実行しているコンピューターで、32ビットプログラムが自動スタートアップ用の32ビットドライバーを登録しようとすると、コンピューター上のブートストラップローダーが、その32ビットドライバーがサポートされていないことを認識します。 X64 ベースバージョンの Windows Server 2003 または Windows XP Professional x64 Edition は、32ビットドライバーを開始しませんが、他の登録済みドライバーを開始します。

プログラムが32ビットドライバーを必要とするかどうかを判断するには、プログラムをインストールして実行します。 プログラムでエラーメッセージが生成される場合は、x64 ベースのバージョンの Windows Server 2003 および Windows XP Professional x64 Edition と互換性のある更新プログラムについて、プログラムの製造元に問い合わせてください。

トップに戻る

その他の考慮事項

レジストリとファイルリダイレクト

WOW64 サブシステムは、レジストリ呼び出しといくつかのファイルシステム呼び出しをリダイレクトすることによって、32ビットのバイナリを64ビットのバイナリから分離します。 WOW64 サブシステムは、32ビットのバイナリが、64ビットのバイナリからのデータに誤ってアクセスするのを防ぐためにバイナリを分離します。 たとえば、".dll" フォルダーから .dll ファイルを実行する32ビットバイナリは、誤って32ビットバイナリと互換性のない64ビット .dll ファイルにアクセスしようとすることがあります。 これを防ぐために、WOW64 サブシステムは、このフォルダーへのアクセスを、このフォルダーにリダイレクトします。 このリダイレクトは、.dll ファイルを32ビットプログラムで動作するように特別に設計する必要があるため、互換性エラーを防ぎます。

ファイルシステムとレジストリリダイレクトの詳細については、Microsoft プラットフォーム SDK ドキュメントの「64-Bit Windows」セクションの「32ビットアプリケーションの実行」を参照してください。 このドキュメントを表示するには、次の Microsoft Web サイトを参照してください。 https://msdn2.microsoft.com/library/aa384249.aspx WOW64 サブシステムは、32ビットのバイナリ呼び出しを32ビットのバイナリに変更を加えることなくリダイレクトします。 ただし、いくつかのタスクを実行するときに、このリダイレクトの証拠が表示されることがあります。 たとえば、64ビットのコマンドプロンプトでコマンドラインスクリプトを入力した場合、コマンドプロンプトでプログラムファイルフォルダーの32ビットプログラムにアクセスできない場合があります。 WOW64 サブシステムが32ビットプログラムをリダイレクトし、Program Files (x86) フォルダーにインストールします。 適切なフォルダーにアクセスするには、コマンドラインスクリプトを変更する必要があります。 または、コマンドラインスクリプトを32ビットのコマンドプロンプトで入力する必要があります。 32ビットのコマンドプロンプトは、ファイルシステムの呼び出しを正しい32ビットのディレクトリに自動的にリダイレクトします。

32ビットのコマンドプロンプトを開始するには、次の手順を実行します。

  • [ スタート] をクリックし、[ 実行] をクリックします。「 % windir% \SysWoW64\cmd.exe」と入力して、[ OK] をクリックします。

トップに戻る

バージョンチェック

一部の32ビットプログラムは、オペレーティングシステムのバージョン情報を調べます。 このチェックを実行する多くの32ビットプログラムでは、互換性のあるオペレーティングシステムとして、x64 ベースのバージョンの Windows Server 2003 または Windows XP Professional x64 Edition が認識されません。 この現象が発生すると、32ビットプログラムによってバージョンチェックエラーが生成され、を閉じます。 この現象が発生する場合は、32ビットプログラムの製造元に、x64 ベースバージョンの Windows Server 2003 および Windows XP Professional x64 Edition と互換性のある更新プログラムについて問い合わせてください。

トップに戻る

Microsoft .NET Framework。

Microsoft .NET Framework を使用してコンパイルされたプログラムは、次の条件に該当する場合、WOW64 サブシステムで32ビットプログラムとして実行されます。

  • プログラムのヘッダー情報に ILONLY ビットが設定されています。
  • このプログラムは、Microsoft .NET Framework 1.1 を使用してコンパイルされました。 プログラムのヘッダー情報に ILONLY ビットが設定されていない場合、またはプログラムが Microsoft .NET Framework バージョン2.0 を使用してコンパイルされている場合、プログラムはネイティブな64ビットプログラムとして実行されます。

トップに戻る

おける

X64 ベースのバージョンの Windows Server 2003 および Windows XP Professional x64 Edition には、OpenGL グラフィックスドライバーは含まれていません。 X64 ベースのバージョンの Windows Server 2003 および Windows XP Professional x64 Edition と互換性のあるドライバーについては、デバイスの製造元にお問い合わせください。

トップに戻る

Microsoft 管理コンソール (MMC)

X64 ベースのバージョンの Windows Server 2003 および Windows XP Professional x64 Edition では、64ビットバージョンの Microsoft 管理コンソール (MMC) を使用してさまざまなスナップインを実行しています。ただし、WOW64 サブシステムでスナップインを実行するには、32ビットバージョンの MMC が必要になることがあります。 X64 ベースのバージョンの Windows Server 2003 および Windows XP Professional x64 Edition の MMC の動作の詳細については、Microsoft Platform SDK のドキュメントの「Using MMC 2.0」セクションの「64-bit for the 32 64-bit for the the-bit Windows」のトピックを参照してください。 このドキュメントを表示するには、次の Microsoft Web サイトにアクセスしてください。 https://msdn2.microsoft.com/library/aa815172.aspx

トップに戻る

Itanium に関する考慮事項

次のセクションでは、Itanium ベースのバージョンの Microsoft Windows Server 2003 および Microsoft windows XP で実行される32ビットプログラムに固有の考慮事項と制限事項について簡単に説明します。

Intel アーキテクチャ32ビット実行層 (IA-32 EL)

Itanium ベースのバージョンの Microsoft Windows Server 2003 Service Pack 1 (SP1) および Microsoft Windows XP は、Intel アーキテクチャ32ビット実行層 (IA-32 EL) を使用して、32ビットプログラムをサポートしています。 以前の Itanium ベースバージョンの Microsoft Windows Server 2003 および Windows XP では、これらのプログラムは WOW64 サブシステムによってサポートされています。 WOW64 サブシステムは CPU の特別なハードウェアを使用して、32ビットプログラムの x86 命令を実行します。 ただし、IA-32 EL は、32ビットプログラムの x86 命令を、Itanium ベースバージョンの Windows Server 2003 および Windows XP の同等の手順に変換します。 IA-32 EL は、ネイティブの64ビットモードで32ビットプログラムの x86 命令を変換した後、WOW64 サブシステムが Itanium ベースの CPU ハードウェアで32ビットプログラムを実行できるようにします。

Itanium ベースの CPU ハードウェアで32ビットプログラムを実行すると、32ビットプログラムのパフォーマンスが向上する可能性があります。 IA-32 EL が32ビットと64ビットの命令セットの間で命令を変換するときに、いくらかのオーバーヘッドが発生することがありますが、パフォーマンスが向上する可能性があります。 IA-32 EL は、32ビットプログラムのパフォーマンスを向上させるための多くの機能も提供しています。 たとえば32、既に翻訳されている命令をキャッシュに含めることができます。 これにより、現在実行中の32ビットプログラムのパフォーマンスが向上します。

他社テクニカル サポートのお問い合わせ窓口は、ユーザーの便宜のために提供されているものであり、 将来予告なしに変更されることがあります。 マイクロソフトは、掲載されている情報に対して、いかなる責任も負わないものとします。

トップに戻る

メモリ管理

Itanium ベースのバージョンの Microsoft Windows Server 2003 および Windows XP では、次のメモリ管理機能は32ビットプログラムでサポートされていません。

  • スキャッター/ギャザー入力/出力 (IO) 詳細については、以下の記事番号をクリックして、マイクロソフトサポート技術情報の記事を参照してください。 160606 パフォーマンス強化 (SQL Server) (Windows NT)

  • アドレスウィンドウ拡張機能 (AWE)

  • メモリページの通知これらの機能を必要とする modifications32 ビットプログラムは、Itanium ベースのバージョンの Windows Server 2003 および Windows XP では実行できません。 64ビット版のプログラムを実行する必要があります。

これらのメモリ管理機能を必要とする32ビットのプログラムがエラーを生成する場合は、Itanium ベースのバージョンの Windows Server 2003 および Windows XP と互換性のある更新プログラムの製造元にお問い合わせください。

トップに戻る

グラフィックスのサポート

次の表は、Itanium ベースのバージョンの Windows Server 2003 および Windows XP で実行される32ビットのバイナリでサポートされているグラフィックスソリューションを示しています。

グラフィックスソリューション ソフトウェアアクセラレータ ハードウェアアクセラレータ
DDraw はい いいえ
D3D3 いいえ いいえ
D3D5 いいえ いいえ
D3D6 いいえ いいえ
D3D7 いいえ いいえ
D3D8 いいえ いいえ
D3D9 いいえ いいえ
おける はい はい

グラフィックスハードウェアアクセラレータがサポートされていない場合、グラフィックスハードウェアアクセラレータを必要とするバイナリは、Itanium ベースのバージョンの Windows Server 2003 および Windows XP では、32ビットのバイナリとして実行されません。 また、ハードウェアアクセラレータがサポートされていない場合、グラフィックを多用する32ビットのバイナリのパフォーマンスが低下します。

32ビットプログラムに DirectX ハードウェアアクセラレータが必要な場合は、Itanium ベースのバージョンの Windows Server 2003 および Windows XP と互換性のある更新プログラムの製造元にお問い合わせください。

トップに戻る

x64 に関する考慮事項

X64 ベースのバージョンの Windows Server 2003 および Windows XP Professional x64 Edition では、32ビット命令と64ビット命令がサポートされています。 WOW64 サブシステムは、プロセッサのネイティブモードを切り替えることによって、32ビットプログラムをネイティブの64ビットモードで実行できます。 個別のハードウェア層またはソフトウェア層は必要ありません。 X64 ベースのバージョンの Windows Server 2003 および Windows XP Professional x64 Edition で32ビットプログラムを実行すると、パフォーマンスが低下することはありません。

X64 ベースのプロセッサのパフォーマンスの詳細については、プロセッサの製造元に問い合わせるか、製造元の Web サイトにアクセスしてください。 このドキュメントに記載されている情報とソリューションは、発行日におけるこれらの問題に関する Microsoft Corporation の現在のビューを表しています。 このソリューションは、Microsoft またはサードパーティのプロバイダーから入手できます。 Microsoft では、この記事に記載されているサードパーティのプロバイダーまたはサードパーティ製のソリューションを特に推奨しているわけではありません。 この記事に記載されていないサードパーティプロバイダーやサードパーティ製のソリューションが他にも存在する可能性があります。 弊社は変更された市場の状況に対応する必要があるため、この情報は Microsoft によるコミットメントとして解釈されるべきではありません。 Microsoft は、Microsoft またはその他のサードパーティプロバイダーによって提供されている情報またはソリューションの正確さを保証することはできません。

Microsoft は、明示的、黙示、または法律のいずれかにかかわらず、すべての表記、保証、および条件を除外して、一切の保証を行いません。 これらには、サービス、ソリューション、製品、またはその他のマテリアルまたは情報に関して、タイトル、非侵害、満足できる状況、商品性、特定の目的に対する適合性の表現、保証、条件の制限は含まれません。 この記事に記載されているサードパーティ製のソリューションについては、Microsoft は一切責任を負いません。

トップに戻る

関連情報

AMD64 プロセッサの詳細については、次の Advanced Micro Devices Web サイトを参照してください。 https://www.amd.com/en/ Microsoft は、テクニカルサポートの検索に役立つサードパーティの連絡先情報を提供します。 将来予告なしに変更されることがあります。 マイクロソフトは、掲載されている情報に対して、いかなる責任も負わないものとします。

Itanium ベースのバージョンの Windows Server 2003 および Windows XP 用のプログラムの開発の詳細については、次の Microsoft Web サイトを参照してください。 https://msdn2.microsoft.com/library/ms952405.aspx

Windows Server 2003 および Windows XP の64ビットバージョンのプログラムの開発に関連するその他の問題の詳細については、次の Microsoft Web サイトを参照してください。 https://msdn.microsoft.com/

トップに戻る

この資料に記載されているサードパーティ製品は、マイクロソフトと関連のない他社の製品です。 明示または黙示にかかわらず、これらの製品のパフォーマンスや信頼性についてマイクロソフトはいかなる責任も負わないものとします。