Skip to main content

アプリケーション開発者向け Microsoft® Windows 7 対応アプリケーションの互換性

更新日: 2010 年 7 月 27 日

Word 文書 Windows7_Compatibility.docx (Word 形式、5.62 MB)

免責

このドキュメントに記載されている情報は、このドキュメントの発行時点におけるマイクロソフトの見解を反映したものです。マイクロソフトは市場の変化に対応する必要があるため、このドキュメントの内容に関する責任をマイクロソフトは問われないものとします。

このホワイト ペーパーに記載された内容は情報提供のみを目的としており、明示、黙示、または法令に基づく規定に関わらず、これらの情報についてマイクロソフトはいかなる責任も負わないものとします。

この文書およびソフトウェアを使用する場合は、適用されるすべての著作権関連の法律に従っていただくものとします。著作権法による制限に関係なく、マイクロソフトの書面による許可なしに、この文書の一部または全部を複製したり、検索システムに保存または登録したり、別の形式に変換したりすることは、手段、目的を問わず禁じられています。ここでいう手段とは、複写や記録など、電子的、または物理的なすべての手段を含みます。

マイクロソフトは、このドキュメントに記載されている内容に関し、特許、特許申請、商標、著作権、またはその他の知的所有権を有する場合があります。マイクロソフトから提供される使用許諾書に明記されていない限り、この文書の配布によりこれらの特許、商標、著作権、またはその他の知的財産権がお客様に譲渡されることはありません。

2009 Microsoft Corporation.All rights reserved.

Microsoft、Windows 7™は、米国 Microsoft Corporation の米国およびその他の国における登録商標または商標です。

この文書およびソフトウェアで使用されている実在の会社名および製品名は、該当各社の商標です。

このドキュメントは、Windows 7 RTM 版における情報をもとに構成しています。仕様および機能は変更される可能性があります。

4.6 Windows リソース保護 (WRP)

4. 新機能や機能変更に伴う互換性問題

この章では、以下のような新機能や機能変更に伴う、互換性問題について紹介します。

WRP とは

WRP とは、Windows のリソースやコンポーネントを、読み取り専用で保護する機能です。OS が使用しているシステム ファイルやフォルダー、レジストリなどが、故意もしくは偶発的に不正に変更されてしまうと、システムが不安定になるなど、信頼性が損なわれる可能性があります。

そこで、これらのリソースに対しては、通常のユーザーからは変更されないよう読み取り専用として設定されます。これは、ビルトインの Administrator、Administrators、System アカウントでさえも例外ではありません。図 4-23 は、「explorer.exe」ファイルのアクセス許可を示しています。Windows Vista や Windows 7 では、管理者やシステム アカウントに対してさえも、「読み取りと実行」権しか与えられていないのが分かります。そのため、たとえ管理者でも上書き保存や、削除はできません。代わりに、「TrustedInstaller」ユーザーに対しては、「フル コントロール」権が許可されています。このユーザーは、「Windows モジュール インストーラー サービス」で使用されるユーザー アカウントです。

図 4-23: Windows XP と Windows Vista/Windows 7 のシステムファイルへのアクセス許可

図 4-23: Windows XP と Windows Vista/Windows 7 のシステム ファイルへのアクセス許可

保護されるリソースの一覧は、Microsoft の Web サイト 「Protected Resource List」(英語) を参照してください。

ページのトップへ


既存アプリケーションへの影響と回避策

WRP によって保護されたシステム ファイルやレジストリに変更処理を試みると、アクセス拒否エラーが表示されます。アプリケーションのインストール時などに、エラーが起こることが多いと予想されます。

既存アプリケーションへの回避策

以下の 3 つの条件を満たす場合、アクセス拒否エラーの表示を OS 側で自動的に制御します。そのため、エラー メッセージは表示しません。

  • インストーラーの実行権限がアプリケーション マニフェストで定義されていない
  • 管理者権限でアプリケーションが実行されている
  • WRP で保護されたリソースの変更や作成、削除によるエラーである
Note:

エラーが表示されないため、コードは成功したかのように見えますが、WRP リソースへの変更はおこなわれません。

ページのトップへ


WRP 対応アプリケーションの作成

独自のプログラムでシステム ファイルの更新をおこなわない

Microsoft が提供している再配布パッケージや、サービス パック等以外でシステム ファイルやコンポーネントのインストールや更新をおこなわないようにします。それ以外のプログラムでの変更は失敗します。これは管理者で実行しても同様です。また、再配布パッケージを分解したり、再パッケージ化したりして配布しようとしても失敗します。

WRP により保護されているかどうかを判定するには

ファイルのプロパティや、レジストリ エディターを使ってアクセス許可を確認することができます。WRP により保護されている場合には、「TrustedInstaller」にフル コントロール、Administrators や SYSTEM、および Users には読み取りと実行権しか与えられていません。

また、アプリケーションの中から、WRP により保護されているかどうかを確認するには、以下の API を使用します。なお、Windows インストーラーは、この操作を自動的におこなっています。

ファイルSfcIsFileProtected()
レジストリSfcIsKeyProtected()
レジストリキーへのアクセス拒否エラー

WRP で保護されるキーの作成や修正、削除をおこなうと、アクセス拒否エラーが通知されます。WRP のために発生したアクセス拒否エラーへの対処方法は、このエラーがアプリケーションに与える影響によって、以下の 2 種類が考えられます。

  • アプリケーションが既存のキーや値への書き込みをおこなっている場合、エラーメッセージを無視することができます。
  • キーや値が存在しない場合は、開発者としてアプリケーションへの影響を判断する必要があります。このキーがアプリケーションを正常に実行するために必要かどうかを考え、必要でない場合は、エラーを無視することができます。必要である場合は、アプリケーションを再設計して代替キーに書き込むなどの対応策が必要となります。

ページのトップへ

評価してください: