由于桌面堆限制,您可能会收到"内存不足"错误消息

适用于: Windows Vista Enterprise 64-bit editionWindows Vista Home Basic 64-bit editionWindows Vista Home Premium 64-bit edition

症状


在 Windows 中打开许多应用程序窗口后,可能无法打开任何其他窗口。有时,窗口可能会打开。但是,它将不包含预期的组件。此外,您可能会收到类似于以下内容的错误消息:
内存不足

原因


由于桌面堆限制,将出现此问题。如果关闭某些窗口,然后尝试打开其他窗口,则这些窗口可能会打开。但是,此方法不会影响桌面堆限制。

解决方案


重要此部分、方法或任务包含告诉您如何修改注册表的步骤。但是,如果修改注册表不正确,则可能会出现严重问题。因此,请确保仔细执行这些步骤。要获得附加保护,请先备份注册表,然后再修改注册表。然后,如果出现问题,可以还原注册表。有关如何备份和还原注册表的详细信息,请单击以下文章编号以查看 Microsoft 知识库中的文章:
322756 如何在 Windows 中备份和还原注册表
要让我们为您解决此问题,请转到"为我修复它"部分。如果您更喜欢自己解决这个问题,请转到"让我自己修复"部分。

帮我修复此问题

要在 Vista 和 Windows 7 中自动修复此问题,请单击"修复它"按钮或链接。单击"在文件下载"对话框中运行,然后按照"修复它"向导中的步骤操作。
Notes
  • 此向导可能只有英文版本。 但自动修复功能同样适用于其他语言版本的 Windows。
  • 如果您不在有问题的计算机上,请将其修复解决方案保存到闪存驱动器或 CD,然后在有问题的计算机上运行它。
  • 我们将共享分区注册表条目的第二个值增加到 20480,并在自动修复中将共享节注册表项的第三个值增加到 1024。
然后,转到"这解决问题了吗?"部分。

我自己修复此问题

要解决此问题,请修改桌面堆大小。为此,请按照以下步骤操作:
  1. 单击"开始",在"开始搜索"框中键入"注册",然后在"程序"列表中单击regedit.exe。备注 如果系统提示您输入管理员密码或确认密码,请键入密码,或单击"继续"。
  2. 找到并单击下面的注册表子项:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems
  3. 右键单击Windows条目,然后单击"修改"。
  4. 在"编辑字符串"对话框的"值数据"部分中,找到"共享节"条目,然后增加此条目的第二个值和第三个值。
注意
  • SharedSection 注册表项的第二个值是与交互式窗口站关联的每个桌面的桌面堆的大小。在交互式窗口站 (WinSta0) 中创建的每个桌面都需要堆。该值以千字节 (KB) 为单位。
  • 第三个 SharedSection 值是与"非交互式"窗口站关联的每个桌面的桌面堆的大小。该值以千字节 (KB) 为单位。
  • 我们不建议为第二个共享节值设置超过20480 KB 的值。
默认情况下,Windows 注册表条目包含基于 x86 版本的 Windows Vista 中的以下数据。
%SystemRoot%\system32\csrss.exeObjectDirectory=\WindowsSharedSection=1024,3072,512Windows=OnSubSystemType=WindowsServerDll=basesrv,1ServerDll=winsrv:UserServerDllInitialization,3ServerDll=winsrv:ConServerDllInitialization,2ProfileControl=OffMaxRequestThreads=16
备注默认情况下,共享部分条目的第二个值是 3072 在基于 x86 版本的 Windows Vista。默认情况下,此条目的第二个值是 20480 在基于 x64 版本的 Windows Vista.Windows Vista SP1, 7, 8, 8.1 (32 位) / Windows 服务器 2008 (32 位)
SharedSection=1024, 12288,512
视窗 Vista, 7, 8, 8.1 (64 位) / Windows 服务器 2008, 2008 R2, 2012, 2012 R2 (64 位)
SharedSection=1024, 20480,768
在 Windows Vista 和以后的操作系统中,内存分配是动态的。因此,内存分配没有限制。但是,如果为桌面堆分配了过多的内存,则可能会出现性能不佳的情况。这就是为什么我们不建议您设置一个值超过 20480 的原因。备注桌面堆大小不受计算机上的物理 RAM 的影响。因此,无法通过添加物理 RAM 来提高性能。

参考


有关类似问题的详细信息,请单击以下文章编号以查看 Microsoft 知识库中的文章:
126962 "内存不足"错误消息出现,当您有大量的程序运行
318677 PRB:当您达到 MDI 应用程序中允许的最大子窗口数时,无法创建更多子窗口和其他问题
有关终端服务环境中的会话内存问题的详细信息,请单击以下文章编号以查看 Microsoft 知识库中的文章:
840342应用程序可能无法在终端服务环境中正常运行
有关桌面堆的详细信息,请访问以下 Microsoft 网站:

此方法是否已修复问题?

  • 检查问题是否已修复。 如果问题已修复,您不用再往下看了。 如果问题没有修复,你可以联系技术支持部门
  • 我们将不胜感激您的反馈。要提供反馈或报告此解决方案的任何问题,请留下评论的"修复它为我"博客或给我们发送电子邮件。