内存分配可能失败时有大可用块

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

点击这里察看该文章的英文版: 216383
本文已归档。它按“原样”提供,并且不再更新。
症状
甚至当有进程的虚拟地址空间内可用的内存的大可用块时,内存分配可能会返回"内存不足"错误。
原因
在进程内的堆分配可能会导致内存管理器不必将扩展以满足该请求中使用虚拟内存堆。 内存管理器扩展了堆分配进程地址空间中的连续虚拟内存。 默认状态下,内存管理器请求双前一成功分配的堆段。 如果失败的段的一个更大堆分配虚拟内存,它不尝试分配一个段前或更小的段的大小。

例如对于如果前一成功分配的堆段是 64 MB,堆管理器将尝试扩展 128 MB 的堆,如果需要扩展堆。 如果没有不 128 MB 的连续虚拟内存、 扩展堆分配将失败并随后将堆分配失败,即使有可能已被另一台 64 MB 空闲块。
解决方案
若要解决此问题,获得最新的 service pack,对于 Windows NT 4.0 或各个软件更新。有关获取最新的 service pack,请访问:
有关获取各个软件更新请与 Microsoft 产品支持服务联系。有关 Microsoft 产品支持服务电话号码和支持成本的信息的完整列表,请访问下面的地址在万维网上:
状态
Microsoft 已经确认这是在 Microsoft Windows NT 版本 4.0 中的问题。此问题已被首先在 Windows NT 4.0 版中更正 Service Pack 5。
更多信息
Ntdll 已修复,这样如果 Ntdll.dll 不能扩展的第一次尝试"内存不足"错误由于堆,它所请求的虚拟内存的分配大小除以 2,并将继续尝试进行扩展以这种方式堆,直到低于所需 satify 堆分配请求的大小。
4.00 c0000017

警告:本文已自动翻译

属性

文章 ID:216383 - 上次审阅时间:10/14/2013 15:41:56 - 修订版本: 2.6

Microsoft Windows NT Server 4.0, Terminal Server Edition Service Pack 4, 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 开发员版, Microsoft Windows NT Workstation 4.0 开发员版, Microsoft Windows NT Workstation 4.0 开发员版, Microsoft Windows NT Workstation 4.0 开发员版, Microsoft Windows NT Workstation 4.0 开发员版, Microsoft Windows NT Server 4.0 企业版, Microsoft Windows NT 4.0 Service Pack 4

  • kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbbug kbfix kbqfe KB216383 KbMtzh
反馈