Article ID: 142676
Article Last Modified on 11/1/2006
APPLIES TO
- Microsoft Windows NT Workstation 4.0 Developer Edition
- Microsoft Windows NT Server 4.0 Standard Edition
This article was previously published under Q142676
IMPORTANT: This article contains information about modifying the registry.
Before you modify the registry, make sure to back it up and make sure that you
understand how to restore the registry if a problem occurs. For information
about how to back up, restore, and edit the registry, click the following
article number to view the article in the Microsoft Knowledge Base:
256986 Description of the Microsoft Windows Registry
SYMPTOMS
When you try to start a service a pop-up dialog box appears
with the following message:
ServiceName - DLL
initialization failure Initialization of the dynamic link library
c:\windows\system32\user32.dll failed. The process is terminating abnormally.
CAUSE
The system has run out of memory to create a new desktop
heap for the service being started.
RESOLUTION
WARNING: If you use Registry Editor incorrectly, you may cause serious
problems that may require you to reinstall your operating system. Microsoft
cannot guarantee that you can solve problems that result from using Registry
Editor incorrectly. Use Registry Editor at your own
risk.
To fix this behavior, you must edit the registry and
restart the computer that is affected.
- Run the Registry Editor(Regedt32.exe).
- Under the HKEY_LOCAL_MACHINE subtree, go to the following
subkey:
\System\CurrentControlSet\Control\Session Manager\
SubSystems\Windows
The default data for this value may look something like the
following (all on one line):
%SystemRoot%\system32\csrss.exe ObjectDirectory=\Windows
SharedSection=1024,3072 Windows=On SubSystemType=Windows
ServerDll=basesrv,1 ServerDll=winsrv:UserServerDllInitialization,3
ServerDll=winsrv:ConServerDllInitialization,2 ProfileControl=Off
MaxRequestThreads=16
You must make the following change to this value:
Scan along the line until you reach the part that defines the
SharedSection values and add ",512" after the second number. This value should
now look something like the following:
%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
After making this change, quit Regedt32, and then
restart the server.
This change limits the size of desktop heaps
created by non-interactive services to 512 KB, which should be ample for most
services.
Adding this optional third value defines the desktop heap
size for non-interactive desktops (services) as 512K. By default, they may use
the same desktop heap size as interactive desktops, which is defined by the
second value (3072, or 3 MB). The minimum that this third value can be set to
is 128. Any attempts to set this value to less than 128 result in 128 being
used. If you set this value to 512, approximately 90 services can be started
before this behavior reoccurs.
STATUS
This behavior is by design. The registry entry enables
users to override the default settings.
Additional query words: Exchange SMS SNA SQL Server prodnt stop initialize
initialized heap space heapspace winstation desktop user32 dll Initialization
failed dynamic link system32
Keywords: kbenv KB142676