文書番号: 888137 - 最終更新日: 2009年9月24日 - リビジョン: 2.4

Windows Vista または Windows XP Service Pack 2 以降のバージョンで [システムのプロパティ] ダイアログ ボックスおよびシステム情報ツールで表示される RAM のサイズが予想より小さい

目次

すべて展開する | すべて折りたたむ

現象

Windows Vista を実行している場合、または Windows XP を Windows XP Service Pack 2 (SP2) 以降のバージョンにアップグレードした場合は、[システムのプロパティ] ダイアログ ボックスまたはシステム情報ツール (Msinfo32.exe) で報告されるメモリが実際とは異なります。この現象は、次の条件に該当する場合に発生します。
  • コンピューターに 4 GB 以上の RAM が搭載されている。
  • コンピューターで、物理アドレス拡張 (PAE) モードが使用されている。
: システム ドライブのルート フォルダーにある Boot.ini ファイルに /pae パラメーターを追加すると、PAE モードが有効になります。

たとえば、Windows XP SP2 にアップグレードする前に、[システムのプロパティ] ダイアログ ボックスで約 3.87 GB の RAM が報告されているとします。システム情報ツールでは、物理メモリの合計が約 3,540.00 MB と報告されているとします。Windows XP SP2 にアップグレードした後は、[システムのプロパティ] ダイアログ ボックスで約 3.12 GB、システム情報ツールで約 2,770.00 MB と表示されることがあります。

注: 4 GB の RAM が搭載されているコンピューターで PAE モードを無効にすると、[システムのプロパティ] ダイアログ ボックスで RAM のサイズが約 3.12 GB、システム情報ツールで合計物理メモリが 2,710.00 MB と表示されることがあります。Windows XP SP2 にアップグレードした後も同じ値が報告されます。

原因

この問題は、Windows XP SP2 および Windows Vista に含まれる仕様変更が原因で発生します。ドライバーの互換性を強化するために PAE モードの動作に変更が加えられました。

Windows Vista および Windows XP Service Pack 2 以降のバージョンには、32 ビット HAL DMA と同様の動作を実装するハードウェア アブストラクション レイヤー (HAL) に対するいくつかの変更が含まれています。変更済みの HAL では、コンピューターが PAE モードで実行されている場合に、無制限のマップ レジスターが許可されます。さらに、カーネル メモリ マネージャーでは、4 GB を超える物理アドレスがすべて無視されます。Windows では、4 GB の境界を超えるシステム RAM に対してアドレス指定ができなくなり、このような RAM はシステムで使用できなくなります。アドレス空間が 4 GB に制限されることにより、32 ビット DMA バス マスター機能を使用するデバイスでは、4 GB の境界を超えるアドレスを使用するトランザクションを処理する必要がなくなります。これらの変更により、トランザクションのダブル バッファリングを行う必要がなくなるので、一部のドライバーでダブル バッファリング サポートが正しく実装されていないために発生するバグが回避されます。

詳細

PAE モードにより発生するドライバー互換性の問題

データ実行防止 (DEP) に関連するドライバーの互換性の問題は、通常、PAE モードに起因する互換性の問題です。

: PAE は、ハードウェア DEP をサポートするプロセッサーが構成されたコンピューターでのみ必要です。

DEP 自体が、コード生成を行うドライバーや、その他の技術を使ってリアルタイムに実行可能コードを生成するドライバーに対する互換性の問題を作り出す可能性もあります。64 ビット バージョンの Windows に読み込まれるドライバーに対しては DEP が "常にオン" になるため、このような動作をするドライバーの多くは修正済みです。このため、すべてのドライバーが更新済みであるという保証はありません。しかし、このような技術を採用しているドライバーはごくわずかであるため、DEP 単体で多数のドライバーに互換性の問題を生じさせることはないと考えられます。

ドライバー互換性の主要な問題は、32 ビット システムで物理アドレス拡張 (PAE) モードを実行することです。PAE モードでは、4 GB を超えるメモリ アドレスをプロセッサーが指定できます。PAE メモリ ページング方式と非 PAE メモリ ページング方式の大きな違いは、PAE モードでは必要なページング レベルが増えることです。つまり、PAE モードで必要なページングレベルは 2 レベルではなく 3 レベルです。

PAE が有効な場合、デバイスが 64 ビットのアドレス指定を実行できないことや、PAE モードでは 4 GB を超えるランダム アクセス メモリ (RAM) が必要であるとドライバーが想定することが原因で、一部のドライバーは読み込みに失敗する可能性があります。このようなドライバーは、PAE モードでは常に 64 ビットのアドレスを受け取ると想定し、ドライバー自身またはデバイスにアドレスを解釈する能力がないと判断します。

他のドライバーは PAE モードで読み込まれることがありますが、システム ページ テーブル エントリ (PTE) を直接変更することでシステムが不安定になることがあります。これらのドライバーは 32 ビット PTE を必要としますが、PAE モードで 64 ビット PTE を受け取ります。

ドライバーの PAE 互換性の最大の問題には、直接メモリ アクセス (DMA) 転送とマップ レジスター割り当てが関係します。DMA をサポートする多くのデバイス (通常は 32 ビット アダプター) は、64 ビットの物理アドレス指定を実行できません。32 ビット モードで実行すると、そのデバイスはすべての物理アドレス空間をアドレス指定できます。PAE モードでは、4 GB を超える物理アドレスにデータが存在する可能性もあります。このような制約を持つデバイスがこのシナリオで機能できるようにするために、Windows 2000 Server 以降の Windows は、DMA トランザクションのダブルバッファリングを行っています。Windows 2000 Server 以降の Windows は、マップ レジスターによって指定された 32 ビット アドレスを示すことで、これを行っています。デバイスは、32 ビット アドレスへの DMA トランザクションを実行することができ、カーネルはそのメモリを 64 ビット アドレスにコピーしてドライバーに送信します。PAE が無効の状態でシステムが動作している場合、32 ビット デバイス用のドライバーではマップ レジスターは実メモリによってバックアップされる必要はありません。つまり、すべてのデバイスとドライバーが 32 ビット アドレス空間に収まっているため、ダブルバッファリングは必要ありません。64 ビット プロセッサーをベースとするコンピューター上での 32 ビット デバイス用ドライバーのテストによれば、クライアントでテスト済みのほとんどの DMA 対応ドライバーは無制限のマップ レジスターを想定していると考えられます。

Windows XP SP2 での機能変更の詳細については、次のマイクロソフト Web サイトを参照してください。
http://technet.microsoft.com/ja-jp/library/bb457155.aspx (http://technet.microsoft.com/ja-jp/library/bb457155.aspx)

この資料は以下の製品について記述したものです。
  • Windows Vista Enterprise 64-bit edition
  • Windows Vista Home Basic 64-bit edition
  • Windows Vista Home Premium 64-bit edition
  • Windows Vista Ultimate 64-bit edition
  • Windows Vista Business
  • Windows Vista Business 64-bit edition
  • Windows Vista Enterprise
  • Windows Vista Home Basic
  • Windows Vista Home Premium
  • Windows Vista Ultimate
  • Microsoft Windows XP Service Pack 2?を以下の環境でお使いの場合
    • Microsoft Windows XP Professional
    • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Service Pack 3
キーワード:?
kbtshoot KB888137
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"
 

サポート技術情報の翻訳