Desktop Heap Limitations

Tony Schreiner's Weblog

If you have a lot of applications open one thing you might notice is that Windows -- even XP -- will reach a point where no more windows can be opened. For me, IE hits this point after about 40-50 windows. Depending on what else you have running, you may be able to open more or less.

Usually this is not a problem, but if you find yourself running into this limit the workaround is to increase the Desktop Heap. To do this, edit the following key in the registry:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems]

Which usually has the following value:

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"

and change 3072 to a larger value such as 4096. Always use caution when editing your registry; standard disclaimers apply.

For more information see: http://support.microsoft.com/default.aspx?scid=kb;EN-US;184802

Information.png Note: 64-bit versions of Windows have a much larger default desktop heap limit, and you should not hit this issue.

Information.png Note: The new NT Debugging blog has a post that talks in greater deal about Desktop Heap and how to troubleshoot issues: http://blogs.msdn.com/ntdebugging/archive/2007/01/04/desktop-heap-overview.aspx

Desktop Heap Information Monitor Tool

You can download the following tool from Microsoft to get an idea about how much is being used by the Desktop Heap: Desktop Heap Information Monitor Tool.