When you run a large number of Windows-based programs, "Out Of Memory"
error messages appear when you attempt to start new programs or try to use
programs that are already running, even though you still have plenty of
physical and pagefile memory available.
This behavior can occur if the desktop heap in the WIN32 subsystem is
This problem occurs more often under Windows NT 3.5 as the default size of the desktop heap is 512K. Under Windows NT 3.1 the default value is 3072K. The default was reduced to increase performance.
This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base:
How to back up and restore the registry in Windows
To have us fix this problem for you, go to the "Fix it for me
" section. If you prefer to fix this problem yourself, go to the "Let me fix it myself
Fix it for me
To fix this problem automatically, click the Fix it
button or link. Click Run
in the File Download
dialog box, and follow the steps in the Fix it wizard. Notes
- This wizard may be in English only. However, the automatic fix also works for other language versions of Windows.
- If you are not on the computer that has the problem, save the Fix it solution to a flash drive or a CD and then run it on the computer that has the problem.
- If this still did not fix the problem for you, please increase the memory for your computer.
Then, go to the "Did this fix the problem?
Let me fix it myself
To correct this problem, increase the size of the desktop heap:
- Run Registry Editor (Regedt32.exe).
- From the
HKEY_LOCAL_MACHINE subtree, go to the following key:
- Select the Windows value.
- From the Edit menu, choose String.
- Increase the SharedSection parameter.
For Windows NT:
SharedSection specifies the system and desktop heaps using the
SharedSection=xxxx,yyyyAdd ",256" or ",512" after the yyyy number.
For Windows 2000, Windows XP, and Windows Server 2003:
SharedSection uses the
following format to specify the system and desktop heaps:
SharedSection=xxxx,yyyy,zzzzFor 32-bit operating systems, increase the yyyy value to "12288";
Increase the zzzz value to "1024".
For 64-bit operating systems, increase the yyyy value to "20480";
Increase the zzzz value to "1024".
Windows NT uses a special memory heap for all Windows-based programs
running on the desktop. The desktop heap is used for all objects (windows,
menus, pens, icons, etc.). When a large number of Windows-based
programs are running, this heap may run out of memory. When there is
not enough memory to satisfy an allocation request, the system normally
returns an error and notifies the user that they are running low on
memory. Some programs do not handle the failure gracefully, and in some
cases there may not be enough memory to create the error message dialog box. As a result, the requested operation fails without any indication.
The SharedSection key is a long string when viewed using Registry Editor.
The default value for this key is as follows.
The first SharedSection value (1024) defines the heap size common to all
desktops. This includes the global handle table (Window handles are unique
machine wide) and shared system settings (such as SystemMetrics). It is
unlikely you would ever need to change this value.
The second SharedSection value (3072) controls the size of the desktop
heap that is associated with an interactive window station (used for Windows objects). This static value is used to prevent ill- behaved applications from consuming too many resources. Because the desktop heap is mapped into each process' address space, this value should not be set to an arbitrarily high value (as it would decrease performance), but should only be increased sufficiently to allow all the desired applications to run.
The third SharedSection value (512) controls the size of the desktop heap for each desktop that is associated with a "non-interactive" window station. If this value is not present, the size of the desktop heap for non-interactive window stations will be same as the size specified for interactive window stations (the second SharedSection value).
For more information about the parameters of the SharedSection key, click the following article number to view the article in the Microsoft Knowledge Base:
PRB: User32.dll or Kernel32.dll fails to initialize
Did this fix the problem?
- Check whether the problem is fixed. If the problem is fixed, you are finished with this section. If the problem is not fixed, you can contact support
- We would appreciate your feedback. To provide feedback or to report any issues with this solution, please leave a comment on the "Fix it for me
" blog or send us an email