The default interactive desktop heap size has been increased on 32-bit Vista SP1


This is going to be a short blog post, but considering the amount of feedback we’ve received on the our two previous desktop heap posts, I think this is worth blogging about.  32-bit Vista SP1 and 32-bit Windows Server 2008 both have a new value for the default size of interactive desktop heaps.  Previously, this heap size was 3 MB by default, but on Vista SP1 and Server 2008 the default interactive heap size is 12 MB.  We’ve heard your comments about the problems associated with the heap size, and this new default size should go a long way towards avoiding interactive desktop heap depletion.


On 32-bit systems, running Vista SP1 or Windows Server 2008, you’ll now see that the relevant portion of the registry value looks like this (by default)…


HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\SubSystems\Windows



64-bit Windows still has a default interactive desktop heap size of 20MB.  Keep in mind that in Vista, session view space (the memory range that desktop heaps are allocated from) is now a dynamic address range.  This means that in Vista and Server 2008 the individual desktop heap sizes can be increased to larger sizes with less concern over exhausting session view space.


– Matthew Justice

Comments (5)

  1. Gerg says:

    That’s nice and all, but… Coming from a Unix background it still seems crazy that a shared per-session resource like this is impacting server processes at all. I mean, I could understand if we were using some kind of GUI toolkit resources like cursors or windows but if we’re an entirely non-UI server process it seems like something’s broken that it’s using *anything* from this resource at all.

    [Often Windows services use windows messages for communication, even if there isn’t a visible window. Sometimes services directly call the USER functions to do this, and other times the service depends on another library that in turn relies on USER. In either case, if the process depends on user32.dll, it will allocate from desktop heap. On the flip side, a process that does not depend on user32.dll will not use desktop heap.]
  2. Julian says:

    Vista HP SP1 – I think I am having heap problems – screen not redrawing correctly (UAC dialog does not appear – mouse over invisible buttons gets them repainted but that’s all; Firefox 3 toobars disappear; OED window mostly white, etc.) – but there is no such key in my registry.

    Can it/should it be created? Are there other keys that should go with it if it is created?

  3. Julian says:

    Oops! Sorry, yes it is there: I was looking for a subkey not a value…

  4. Do What? says:

    Exchange Client Extensions are used in Outlook to extend the functionality of Outlook.  A developer

  5. Richard Voorheis says:

    It is difficult to understand how the default Desktop Heap Size is causing printer driver DTM failure in "Print Processor API Test" at "Test Winprint print processor as User" task. Error "Status dll init failed".

    Looks like I am chasing a wild goose here.