64 ビット版の Windows Server 2003 と Windows XP での 32 ビット プログラムの互換性について
この資料に記載されているサードパーティ製品は、マイクロソフトと関連のない他社の製品です。明示または黙示にかかわらず、これらの製品のパフォーマンスや信頼性についてマイクロソフトはいかなる責任も負わないものとします。
目次概要 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-Bit Windows」にある「Running 32-bit Applications」を参照してください。http://msdn.microsoft.com/library/default.asp?url=/library/en-us/win64/win64/running_32_bit_applications.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/win64/win64/running_32_bit_applications.asp) プログラムのパフォーマンスに関する注意事項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/library/default.asp?url=/library/en-us/memory/base/virtual_address_space.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/memory/base/virtual_address_space.asp) WOW64 サブシステムの制約WOW64 サブシステムでは、以下のプログラムはサポートされません。
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-Bit Windows」にある「Running 32-bit Applications」を参照してください。このドキュメントを参照するには、次のマイクロソフト Web サイトにアクセスします。 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/win64/win64/running_32_bit_applications.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/win64/win64/running_32_bit_applications.asp) 32 ビット バイナリの呼び出しは、WOW64 サブシステムによりリダイレクトされます。リダイレクトのために 32 ビット
バイナリを変更する必要はありません。一方、一部のタスクを実行するときに、このリダイレクトの証拠を確認できることがあります。たとえば、64 ビットのコマンド
プロンプトでコマンド ライン スクリプトを実行すると、コマンド プロンプトから Program Files フォルダの 32 ビット
プログラムにアクセスできないことがあります。32 ビット プログラムのインストール先は、WOW64 サブシステムによって Program Files
(x86) フォルダにリダイレクトされています。正しいフォルダにアクセスするには、コマンド ライン スクリプトを変更する必要があります。または、コマンド
ライン スクリプトを 32 ビットのコマンド プロンプトで実行します。32 ビットのコマンド プロンプトで実行されたファイル システム呼び出しは、正しい 32
ビット ディレクトリに自動的にリダイレクトされます。 32 ビットのコマンド プロンプトを起動するには、以下の手順を実行します。
バージョンの確認32 ビット プログラムの中には、オペレーティング システムのバージョン情報を確認するものがあります。そのような 32 ビット プログラムの多くは、x64 ベースの Windows Server 2003 および Windows XP Professional x64 Edition を互換性のあるオペレーティング システムとして認識しません。その場合、32 ビット プログラムはバージョン確認エラーを出力した後、終了します。このような場合は、x64 ベースの Windows Server 2003 および Windows XP Professional x64 Edition と互換性のある最新版が入手可能かどうかを 32 ビット プログラムの製造元に問い合わせてください。Microsoft .NET FrameworkMicrosoft .NET Framework でコンパイルされたプログラムは、以下の条件が満たされると、WOW64 サブシステムで 32 ビット プログラムとして実行されます。
OpenGLx64 ベースの 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://msdn2.microsoft.com/en-us/library/aa815172.aspx (http://msdn2.microsoft.com/en-us/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 ビット プログラムのパフォーマンスが向上します。 IA-32 EL の詳細については、次の Intel Web サイトを参照してください。 http://www.intel.com/cd/software/products/asmo-na/eng/219773.htm (http://www.intel.com/cd/software/products/asmo-na/eng/219773.htm) 他社テクニカル サポートのお問い合わせ窓口は、ユーザーの便宜のために提供されているものであり、将来予告なしに変更されることがあります。マイクロソフトは、掲載している情報に対して、いかなる責任も負わないものとします。 メモリ管理Itanium ベースの Microsoft Windows Server 2003 および Windows XP では、32 ビット プログラムの以下のメモリ管理機能がサポートされません。
これらのメモリ管理機能を必要とする 32 ビット プログラムでエラーが出力された場合は、Itanium ベースの Windows Server 2003 および Windows XP と互換性のある最新版が入手可能かどうかをプログラムの製造元に問い合わせてください。 グラフィックスのサポート次の表は、Itanium ベースの Windows Server 2003 および Windows XP で実行される 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 サイトを参照してください。 この資料に記載されている情報とソリューションは、この資料の発行日における、これらの問題に対するマイクロソフトの見解を示すものです。この資料のソリューションはマイクロソフトまたはサードパーティのプロバイダから入手できますが、この資料に記載されているサードパーティのプロバイダやサードパーティのソリューションをマイクロソフトが特に推奨するということではありません。この資料に記載されていない他のサードパーティ プロバイダやサードパーティ ソリューションが存在する可能性があります。マイクロソフトは市場の変化に対応する必要があるため、この資料の情報は、マイクロソフトの確約とは見なされないものとします。マイクロソフトは、マイクロソフトまたはこの資料に記載されているサードパーティ プロバイダによって提供される情報の正確性およびソリューションの正確性を保証することも、推奨することもできません。 明示、黙示または法律の規定にかかわらず、マイクロソフトは一切の保証をせず、すべての表記、保証、および条件を除外します。これらは、あらゆるサービス、ソリューション、製品や他の資料または情報に関連するタイトル、非侵害、満足できる条件、市場性、特定目的への適合性の表記、保証、および条件を含みますが、これらに限定されません。マイクロソフトは、いかなる場合においても、この資料に記載されているサードパーティ ソリューションの責任を負いません。 関連情報 Intel 製 Itanium II プロセッサの詳細については、次の Intel Web サイトを参照してください。
http://www.intel.co.jp/jp/products/processor/itanium2/index.htm?iid=jppsp_nav+proc_itanium2 (http://www.intel.co.jp/jp/products/processor/itanium2/index.htm?iid=jppsp_nav+proc_itanium2) 他社テクニカル
サポートのお問い合わせ窓口は、ユーザーの便宜のために提供されているものであり、将来予告なしに変更されることがあります。マイクロソフトは、掲載している情報に対して、いかなる責任も負わないものとします。
AMD64 プロセッサの詳細については、次の Advanced Micro Devices の Web サイトを参照してください。 http://www.amd.com/jp-ja/ (http://www.amd.com/jp-ja/) 他社テクニカル
サポートのお問い合わせ窓口は、ユーザーの便宜のために提供されているものであり、将来予告なしに変更されることがあります。マイクロソフトは、掲載している情報に対して、いかなる責任も負わないものとします。
Itanium ベースの Windows Server 2003 および Windows XP 向けプログラム開発の詳細については、次のマイクロソフト Web サイトを参照してください。 http://msdn2.microsoft.com/en-us/library/ms952405.aspx (http://msdn2.microsoft.com/en-us/library/ms952405.aspx) 64 ビット版の Windows Server 2003 および Windows XP 向けプログラム開発に関連するその他の問題の詳細については、次のマイクロソフト Web サイトを参照してください。 http://www.microsoft.com/japan/msdn/ (http://www.microsoft.com/japan/msdn/) http://msdn.microsoft.com/library/en-us/sdkintro/sdkintro/devdoc_platform_software_development_kit_start_page.asp (http://msdn.microsoft.com/library/en-us/sdkintro/sdkintro/devdoc_platform_software_development_kit_start_page.asp) http://msdn.microsoft.com/library/en-us/Intro_g/hh/Intro_g/ddksplash_d0c992d8-3d64-44cc-ab2c-13bcfa0faffb.xml.asp (http://msdn.microsoft.com/library/en-us/Intro_g/hh/Intro_g/ddksplash_d0c992d8-3d64-44cc-ab2c-13bcfa0faffb.xml.asp) この資料は以下の製品について記述したものです。
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。" | サポート技術情報の翻訳
|

先頭へ戻る
