Every desktop object on the system has a desktop heap that is associated with it. The desktop object uses the heap to store menus, hooks, strings, and windows. In Windows Server 2003 and Windows XP 32-bit, the system allocates desktop heap from a system-wide 48 megabytes (MB) buffer. In addition to desktop heaps, printer drivers and font drivers also use this buffer.
The first SharedSection value (1024) is the shared heap size common to all desktops. This includes the global handle table. This table holds handles to windows, menus, icons, cursors, and so on, and shared system settings. It is unlikely that you would ever have to change this value.
The second SharedSection value is the size of the desktop heap for each desktop that is associated with the interactive window station WinSta0. User objects such as hooks, menus, strings, and windows consume memory in this desktop heap. It is unlikely that you would ever have to change this value.
Every service process that is executed under a user account will receive a new desktop in a noninteractive window station that is created by the Service Control Manager (SCM). Therefore, each service that is executed under a user account will consume the number of kilobytes of desktop heap that is specified in the third SharedSection value. All services that are executed under the LocalSystem account when Allow Service to Interact with the Desktop is not selected share the desktop heap of the Default desktop in the noninteractive service windows station (Service-0x0-3e7$).
Decreasing the second or third SharedSection value will increase the number of desktops that can be created in the corresponding window stations. Smaller values will limit the number of hooks, menus, strings, and windows that can be created in a desktop. On the other hand, increasing the second or third SharedSection value will decrease the number of desktops that can be created. However, this will also increase the number of hooks, menus, strings, and windows that can be created in a desktop.
aa06259810