~小規模 (手動) 移行~
アプリケーション互換モードとは

更新日: 2011 年 9 月 5 日

Windows 7 のアプリケーション互換モードとは、下位バージョンの OS の挙動をエミュレートする機能です。アプリケーションの互換性問題が生じる原因の 1 つは、アプリケーションが OS を呼び出したときに、従来の OS とは違った挙動や応答をする場合があるからです。例えば Windows 7 は、Windows XP から比較するとセキュリティ機能が大幅に強化されており、Windows XP では問題なく実行できていた処理が、一部で制限されたり、挙動が変わったりしています。OS のセキュリティ機能が強化されるのは時代の流れですが、古い Windows XP アプリケーションは、そうした前提で作られてはいないために問題が生じる場合があるのです。

こうした問題を解消して、過去のアプリケーションをできる限り新しい OS 環境で実行可能にするのがアプリケーション互換モードです。具体的に言えば、このアプリケーション互換モードでは、OS とアプリケーションの間に、双方のバージョンの違いを吸収するためのレイヤーを置き、アプリケーションから OS への要求や、OS からアプリケーションへの応答の中で、互換性問題を生じる可能性があるものを途中で偽装して、問題を回避するようにします。

【アプリケーション互換モードの原理】

アプリケーション互換モードの原理図

例えば図の「処理 A」では、Windows XP アプリケーションからの呼び出しを互換レイヤーが横取りして偽装し、OS を呼び出すようにして互換性問題を回避します。一方の「処理 B」は、Windows XP アプリケーションから Windows 7 OS への呼び出しは問題ないのですが、Windows 7 OS からの応答に問題があるため、これを横取りして偽装し、問題を回避します。

Windows XP の内部的な OS バージョンは「5.1」、Windows 7 は「6.1」です。このため Windows XP アプリケーションの一部は、起動時の OS バージョン チェックで「6.1」を返されるとエラーになってしまい、異常終了してしまう場合があります。このようなとき、アプリケーション互換モードは、図の処理 B の偽装コードの部分で、「5.1」とバージョンの戻り値を偽装して、アプリケーションの処理が継続できるようにするのです。

Windows 7 のアプリケーション互換モードを利用して、古い Windows XP アプリケーションを実行するには、互換モードで実行したいアプリケーションの .EXE ファイルのプロパティを表示し、[互換性]タブの[互換モード]で設定を行います。

【アプリケーション互換モードを設定する】

setup.exe のプロパティの画面

こうして「Windows XP (Service Pack 3)」を選択すると、このアプリケーションを実行したときに、Windows XP SP3 を偽装するためのコードが自動的に実行されるようになります。これにより、互換性問題で実行できなかったアプリケーションが、Windows 7 で問題なく動くようになる可能性があります。

Windows XP Mode とは

アプリケーション互換モードとは

ページのトップへ