[NT]大きな空きメモリ ブロックがあるにもかかわらずメモリ割当てが失敗

文書翻訳 文書翻訳
文書番号: 216383 - 対象製品
この記事は、以前は次の ID で公開されていました: JP216383
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
すべて展開する | すべて折りたたむ

現象

プロセスの仮想アドレス空間に大きな空きメモリ ブロックがあるにもかかわらず、"メモリ不足" のエラーが発生する場合があります。

原因

プロセス内の必要なヒープ割り当てのために、メモリ マネージャは、場合によっては仮想メモリを使用してヒープを拡張します。メモリ マネージャは、プロセスのアドレス空間から連続した仮想メモリを割り当ててヒープを拡張します。デフォルトでは、メモリ マネージャは前回正常に割り当てられたヒープ セグメントの 2 倍のサイズを要求します。仮想メモリ内でのこの大きなヒープ セグメントの割り当てに失敗してしまうと、前回、もしくはそれ以下のサイズのセグメントでさえ、割り当てなくなります。

たとえば、前回 64MB のヒープ セグメントが正常に割り当てられた場合、ヒープ マネージャはヒープを拡張する必要があると、128MB の大きさで拡張しようと試みます。そして 128MB の連続した仮想メモリがない場合は、ヒープ拡張割り当ては失敗し、たとえ別に 64MB の空きブロックがある場合でも、その後のヒープ割り当ては失敗します。

状況

この問題は Windows NT 4.0 日本語版のサービスパック 5 で修正されております。なお、サービスパック 5 にて修正された問題の一覧は、以下の関連文書に記載されております。
文書番号 : 413592
タイトル : [NT]Windows NT 4.0 Service Pack 5 修正一覧


詳細

最初の試行で "メモリ不足" エラーによって Ntdll.dll がヒープを拡張できなかった場合でも、Ntdll は、要求された仮想メモリ割り当てサイズを 1/2 にして、要求サイズがヒープ割り当てを満足させるサイズ以下になるまで、継続的にヒープの拡張を試行するように改善されました。

関連情報

この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 216383 (最終更新日 2000-02-21) をもとに作成したものです。


プロパティ

文書番号: 216383 - 最終更新日: 2014年1月31日 - リビジョン: 3.2
この資料は以下の製品について記述したものです。
  • Microsoft Windows NT Server 4.0 Standard Edition
  • Microsoft Windows NT 4.0 Service Pack 1
  • Microsoft Windows NT 4.0 Service Pack 2
  • Microsoft Windows NT 4.0 Service Pack 3
  • Microsoft Windows NT 4.0 Service Pack 4
  • Microsoft Windows NT Workstation 4.0 Developer Edition
  • Microsoft Windows NT Workstation 4.0 Developer Edition
  • Microsoft Windows NT Workstation 4.0 Developer Edition
  • Microsoft Windows NT Workstation 4.0 Developer Edition
  • Microsoft Windows NT Workstation 4.0 Developer Edition
  • Microsoft Windows NT Server 4.0 Enterprise Edition
  • Microsoft Windows NT 4.0 Service Pack 4
  • Microsoft Windows NT Server 4.0 Terminal Server
  • Microsoft Windows NT Server 4.0, Terminal Server Edition Service Pack 4
キーワード:?
kbnosurvey kbarchive kbqfe kbbug4.00 kbfix4.00 kbhotfixserver KB216383
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com