デスクトップ ヒープ制限による "メモリ不足です" エラー メッセージが表示される

適用対象: Windows Vista Enterprise 64-bit EditionWindows Vista Home Basic 64-bit EditionWindows Vista Home Premium 64-bit Edition

現象


多数のアプリケーション ウィンドウを開いている場合に、追加でウィンドウを開こうとすると、エラー メッセージが表示される場合があります。 ウィンドウは開くこともありますが、 適切なコンポーネントが含まれていません。 また、以下のようなエラー メッセージが表示されることがあります。
メモリ不足です

原因


この問題は、デスクトップ ヒープ制限が原因で発生します。 一部のウィンドウを閉じてから他のウィンドウを開くと、このようなウィンドウは開くことがあります。 ただし、デスクトップ ヒープ制限が原因の場合、この方法ではウィンドウを開くことはできません。

解決方法


重要: このセクション、方法、またはタスクには、レジストリの変更方法が記載されています。 レジストリを誤って変更すると、深刻な問題が発生することがあります。 レジストリを変更する際には十分に注意してください。 万一に備えて、編集の前にレジストリをバックアップしてください。 問題が発生した場合でも、レジストリを復元できます。 レジストリのバックアップ方法および復元方法の詳細を参照するには、以下のサポート技術情報番号をクリックしてください。
322756 Windows でレジストリをバックアップおよび復元する方法
このページでこの問題を解決するには、「Fix it で解決する」セクションに進んでください。 自分でこの問題を解決するには、「自分で解決する」セクションに進んでください。

Fix it で解決する



Vista および Windows 7 で、この問題を自動的に解決するには、[この問題を解決する] ボタンまたはリンクをクリックします。 [ファイルのダウンロード] ダイアログ ボックスで [実行] をクリックし、Fix it ウィザードに表示される手順に従います。



注意事項
  • このウィザードは英語版のみである場合があります。 しかし、自動的な解決は他の言語版の Windows でも機能します。
  • 問題のあるコンピューターとは別のコンピューターを操作している場合、Fix it ソリューションをフラッシュ ドライブまたは CD に保存することで、問題のあるコンピューターで実行することができます。
  • 自動修復では、SharedSection レジストリ エントリの 2 つ目の値を 20,480 に増やし、SharedSection レジストリ エントリの 3 つ目の値を 1,024 に増やします。

次に、「問題が解決されたかどうかの確認」セクションに進んでください。



自分で解決する


この問題を解決するには、デスクトップ ヒープのサイズを大きくします。 これを行うには、次の手順を実行します。
  1. [スタート] をクリックし、[検索の開始] ボックスに「regedit」と入力します。次に、[プログラム] の一覧の [regedit.exe] をクリックします。

    注:
    管理者のパスワードを要求するダイアログ ボックスが表示された場合は管理者のパスワードを入力して [OK] をクリックし、確認を要求するダイアログ ボックスが表示された場合は [続行] をクリックします。
  2. 次のレジストリ サブキーを見つけてクリックします。
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems
  3. [Windows] エントリを右クリックし、[修正] をクリックします。
  4. [文字列の編集] ダイアログ ボックスの [値のデータ] セクションで、SharedSection エントリを特定してから、2 つ目の値と 3 つ目の値を増やします。
注意事項
  • SharedSection レジストリ エントリの、デスクトップ ヒープの 2 つ目の値のサイズは、ウィンドウ対話ステーションに関連する各デスクトップのデスクトップ ヒープのサイズです。 ヒープは、対話ウィンドウ ステーション (WinSta0) で作成される各デスクトップで必要です。 この値の単位はキロバイト (KB) です。
  • SharedSection レジストリ エントリの、デスクトップ ヒープの 3 つ目の値のサイズは、ウィンドウ対話ステーションに関連する各デスクトップのデスクトップ ヒープのサイズです。 この値の単位はキロバイト (KB) です。
  • 2 つの SharedSection 値に、20,480 KB を超える値を設定することはお勧めしません。
既定では、Windows Vista (x86 ベース バージョン) での Windows レジストリ エントリには次のデータが含まれています。
%SystemRoot%\system32\csrss.exe
ObjectDirectory=\Windows
SharedSection=1024,3072,512
Windows=On
SubSystemType=Windows
ServerDll=basesrv,1
ServerDll=winsrv:UserServerDllInitialization,3
ServerDll=winsrv:ConServerDllInitialization,2
ProfileControl=Off
MaxRequestThreads=16

注: Windows Vista (x86 ベース バージョン) では、2 つ目の SharedSection エントリの既定値は 3.072 です。 Windows Vista (x64 ベース バージョン) での 2 つ目の SharedSection エントリの既定値は 20,480 です。

Windows Vista SP1、7、8、8.1 (32 ビット版) / Windows Server 2008 (32 ビット版)
SharedSection=1024, 12288,512

Windows Vista、7、8、8.1 (64 ビット版) / Windows Server 2008、2008 R2、2012、2012 R2 (64 ビット版)
SharedSection=1024, 20480,768


Windows Vista 以降のオペレーティング システムでは、メモリの割り当ては動的に行われます。 このため、メモリ割り当ての制限はありません。 ただし、デスクトップ ヒープに過剰のメモリを割り当てると、性能が悪くなることがあります。 このため、20480 よりも大きい値に設定することは推奨されません。

注: デスクトップ ヒープサイズは、コンピューター上の物理 RAM の影響を受けません。 このため、物理 RAM を拡張しても性能が向上することはありません。

関連情報


同様の問題の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。

126962 多数のプログラムを実行すると、"メモリ不足です" エラー メッセージが表示される

318677 [PRB]: MDI アプリケーションで、割付可能な子ウィンドウの最大数に達すると、子ウィンドウをそれ以上作成できず、その他の問題が発生する

ターミナル サービス環境のセッション メモリ問題の詳細については、以下のサポート技術情報番号をクリックしてください。

840342 ターミナル サービス環境でアプリケーションが正しく動作しない場合がある


ヒープの詳細については、次のマイクロソフト Web サイトを参照してください。

問題が解決されたかどうかの確認

  • 問題が解決されたかどうかを確認します。 問題が解決された場合、このセクションの作業は完了していることになります。 問題が解決されていない場合は、サポートに問い合わせることができます。
  • マイクロソフトではフィードバックをお待ちしております。 この解決方法に関するフィードバックを提供するか、または問題を報告するには、「Fix it for me」ブログ (英語) にコメントを記入するか、電子メール メッセージ (日本語可) を送信してください。