64 ビット版の Windows Server 2003 と Windows XP での 32 ビット プログラムの互換性について

文書翻訳 文書翻訳
文書番号: 896456 - 対象製品
この資料に記載されているサードパーティ製品は、マイクロソフトと関連のない他社の製品です。明示または黙示にかかわらず、これらの製品のパフォーマンスや信頼性についてマイクロソフトはいかなる責任も負わないものとします。
すべて展開する | すべて折りたたむ

目次

概要

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

64 ビット版の Windows Server 2003 または 64 ビット版の Windows XP でプログラムを実行する場合、プログラムの互換性またはパフォーマンスへの影響について注意が必要な場合があります。プログラムを 64 ビット版の Windows Server 2003 または 64 ビット版の Windows XP のいずれかでテストして、互換性やパフォーマンスの問題が存在するかどうかを確認することができます。

この資料では、64 ビット版の Windows Server 2003 または 64 ビット版の Windows XP で 32 ビット プログラムを実行するときの互換性に関するいくつかの注意事項について説明します。この資料では、Windows Server 2003 と Windows XP の 32 ビット版と 64 ビット版の比較や、さまざまな 64 ビット オペレーティング システムの比較は行いません。この資料は、32 ビット バイナリと 64 ビット バイナリの違いを理解しているユーザーを対象としています。

この資料に記載されている互換性に関する注意事項は 64 ビット版の Windows Server 2003 と 64 ビット版の 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 サブシステムにより、x64 ベースの Windows Server 2003 と Windows XP Professional x64 Edition で 32 ビット プログラムを変更することなく実行できます。これは、x64 ベースの Windows Server 2003 と Windows XP Professional x64 Edition の上に 32 ビット環境を作成することで実現されます。WOW64 サブシステムの詳細については、Microsoft Platform SDK ドキュメントの「64 ビット Windows」にある「32 ビット アプリケーションの実行」を参照してください。このドキュメントを参照するには、次のマイクロソフト Web サイトにアクセスします。
http://msdn2.microsoft.com/ja-jp/library/aa384249.aspx

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

WOW64 サブシステムにより、x64 ベースの Windows Server 2003 または Windows XP Professional x64 Edition の上に 32 ビット環境が作成されます。32 ビット プログラムの中には、これらのオペレーティング システム上で実行すると、32 ビット版の Windows Server 2003 や Windows XP で実行する場合より動作が遅くなるものがあります。たとえば、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 より多いことに起因します。

32 ビット版 Windows と 64 ビット版 Windows におけるメモリ管理の違いの詳細については、Microsoft Platform SDK ドキュメントの「About Memory Management」にある「Virtual Address Space」を参照してください。このドキュメントを参照するには、次のマイクロソフト Web サイトにアクセスします。
http://msdn.microsoft.com/ja-jp/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 ビット プログラムを実行するために必要なソフトウェア エミュレーションでは、それらのプログラムのパフォーマンスが大幅に低下します。

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

16 ビットのコンポーネントを必要とする 32 ビット プログラムは 16 ビットのファイルまたはコンポーネントを実行しようとしますが、そのプログラムによってシステム ログにエラー メッセージが出力されます。その後、オペレーティング システムにより、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 ビット プログラムにエラーが報告されます。

32 ビット プログラムが、x64 ベースの Windows Server 2003 または Windows XP Professional x64 Edition を搭載するコンピューターで自動的に起動されるように 32 ビット ドライバーを登録すると、コンピューターのブートストラップ ローダーはその 32 ビット ドライバーがサポートされていないと認識します。この 32 ビット ドライバーは、x64 ベースの Windows Server 2003 または Windows XP Professional x64 Edition では起動されませんが、登録されている他のドライバーは起動されます。

プログラムに 32 ビット ドライバーが必要かどうかを確認するには、そのプログラムをインストールして実行します。プログラムによってエラー メッセージが出力される場合は、x64 ベースの Windows Server 2003 および Windows XP Professional x64 Edition と互換性のある最新版が入手可能かどうかをプログラムの製造元に問い合わせてください。

その他の注意事項

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

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

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

32 ビットのコマンド プロンプトを起動するには、以下の手順を実行します。
  • [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。

    %windir%\SysWoW64\cmd.exe」と入力し、[OK] をクリックします。

バージョン確認

32 ビット プログラムの中には、オペレーティング システムのバージョン情報を確認するものがあります。そのような 32 ビット プログラムの多くは、x64 ベースの Windows Server 2003 および Windows XP Professional x64 Edition を互換性のあるオペレーティング システムとして認識しません。その場合、32 ビット プログラムはバージョン確認エラーを出力した後、終了します。このような場合は、x64 ベースの Windows Server 2003 および Windows XP Professional x64 Edition と互換性のある最新版が入手可能かどうかを 32 ビット プログラムの製造元に問い合わせてください。

Microsoft .NET Framework

Microsoft .NET Framework でコンパイルされたプログラムは、以下の条件が満たされると、WOW64 サブシステムで 32 ビット プログラムとして実行されます。
  • プログラムのヘッダー情報で ILONLY ビットがセットされている。
  • プログラムが Microsoft .NET Framework 1.1 でコンパイルされている。
ヘッダー情報で ILONLY ビットがセットされていないプログラムと Microsoft .NET Framework 2.0 でコンパイルされたプログラムは、ネイティブの 64 ビット プログラムとして実行されます。

OpenGL

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」にある「Running 32-bit and 64-bit Snap-ins in 64-bit Windows」を参照してください。このドキュメントを参照するには、次のマイクロソフト Web サイトにアクセスします。
http://msdn.microsoft.com/ja-jp/library/aa815172.aspx

Itanium に関する注意事項

ここでは、Itanium ベースの Microsoft Windows Server 2003 および Itanium ベースの Microsoft Windows XP で実行する 32 ビット プログラムに関する独自の注意事項と制限事項について簡単に説明します。

Intel Architecture 32-bit Execution Layer (IA-32 EL)

Itanium ベースの Microsoft Windows Server 2003 Service Pack 1 (SP1) および Microsoft Windows XP では、Intel Architecture 32-bit Execution Layer (IA-32 EL) を使用して 32 ビット プログラムがサポートされます。Itanium ベースの Microsoft Windows Server 2003 および Windows XP の初期のバージョンでは、32 ビット プログラムが WOW64 サブシステムによってサポートされます。WOW64 サブシステムは、CPU 内の特殊なハードウェアを使用して 32 ビット プログラムの x86 命令を実行します。一方、IA-32 EL は、32 ビット プログラムの x86 命令を、Itanium ベースの Windows Server 2003 および Windows XP の対応する命令に変換します。IA-32 EL は、32 ビット プログラムの x86 命令をネイティブの 64 ビット モードで変換した後、WOW64 サブシステムが Itanium ベースの CPU ハードウェアで 32 ビット プログラムを実行することを許可します。

Itanium ベースの CPU ハードウェアで 32 ビット プログラムを実行すると、32 ビットの命令セットと 64 ビットの命令セットの間で命令を変換するときに多少のオーバーヘッドが発生しますが、プログラムのパフォーマンス向上が見られることがあります。また、IA-32 EL には、32 ビット プログラムのパフォーマンスを強化する多くの機能があります。たとえば、既に変換済みの命令をキャッシュすることができます。この機能により、現在実行中の 32 ビット プログラムのパフォーマンスが向上します。



メモリ管理

Itanium ベースの Microsoft Windows Server 2003 および Windows XP では、32 ビット プログラムの以下のメモリ管理機能がサポートされません。
  • スキャッタ/ギャザー入出力 (I/O)
    詳細については、以下のサポート技術情報番号をクリックしてください。
    160606 Windows NT での SQL Server のパフォーマンス強化
  • Address Windowing Extensions (AWE)
  • メモリ ページ変更の通知
これらの機能を必要とする 32 ビット プログラムは 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××
OpenGL
グラフィックス ハードウェア アクセラレーションがサポートされていない場合、グラフィックス ハードウェア アクセラレーションを必要とするバイナリは、Itanium ベースの Windows Server 2003 および Windows XP で 32 ビット バイナリとして実行されません。また、ハードウェア アクセラレーションがサポートされていない場合、グラフィックスを広範囲に使用する 32 ビット バイナリのパフォーマンスが低下します。

DirectX ハードウェア アクセラレーションを必要とする 32 ビット プログラムを使用する場合は、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 サイトを参照してください。このドキュメントは暫定版であり、このドキュメントに記載されている情報およびソリューションは、このドキュメントの発行日におけるマイクロソフトの見解を示すものです。これらのソリューションはマイクロソフトまたはサードパーティ プロバイダーを通じて利用できます。マイクロソフトは、この資料で説明することがあるサードパーティ プロバイダーまたはサードパーティ ソリューションを特別に推奨するものではありません。この資料で説明していない、その他のサードパーティ プロバイダーまたはサードパーティ ソリューションが存在する場合もあります。マイクロソフトは変化する市場の条件に対応する必要があるため、この情報がマイクロソフトの誓約であると解釈しないでください。マイクロソフトは、マイクロソフトまたはこの資料に記載されているサードパーティ プロバイダーによって提供される情報の正確性およびソリューションの正確性を保証することも、推奨することもできません。

明示、黙示、または法律の規定にかかわらず、マイクロソフトは一切の保証をせず、すべての表示、保証、および条件を排除します。これらは、あらゆるサービス、ソリューション、製品や他の資料または情報に関する権利、非侵害、満足できる条件、市場性、特定目的への適合性の表示、保証、および条件を含みますが、これらに限定されません。マイクロソフトは、いかなる場合においても、この資料に記載されているサードパーティ ソリューションの責任を負いません。

関連情報

AMD64 プロセッサの詳細については、次の Advanced Micro Devices の Web サイトを参照してください。
http://www.amd.com/jp-ja/
他社テクニカル サポートのお問い合わせ窓口は、ユーザーの便宜のために提供されているものであり、将来予告なしに変更されることがあります。マイクロソフトは、掲載している情報に対して、いかなる責任も負わないものとします。

Itanium ベースの Windows Server 2003 および Windows XP 向けプログラム開発の詳細については、次のマイクロソフト Web サイトを参照してください。
http://msdn.microsoft.com/ja-jp/library/ms952405.aspx


64 ビット版の Windows Server 2003 および Windows XP 向けプログラム開発に関連するその他の問題の詳細については、次のマイクロソフト Web サイトを参照してください。
http://msdn.microsoft.com/ja-jp/

プロパティ

文書番号: 896456 - 最終更新日: 2012年6月29日 - リビジョン: 3.0
この資料は以下の製品について記述したものです。
  • Microsoft Windows Server 2003, Datacenter x64 Edition
  • Microsoft Windows Server 2003, Enterprise x64 Edition
  • Microsoft Windows Server 2003, Standard x64 Edition
  • Microsoft Windows XP Professional x64 Edition
キーワード:?
kbinfo kbtshoot kbusage kbperformance kbhardware kbinterop KB896456
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com