Overcoming User32.dll Initialization Failure Errors

Last reviewed: September 23, 1997
Article ID: Q142676
The information in this article applies to:
  • Microsoft Windows NT Workstation version 4.0
  • Microsoft Windows NT Server version 4.0

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

Fixing this problem requires editing of the Registry and restarting the computer concerned.

WARNING: Using Registry Editor incorrectly can cause serious, system-wide problems that may require you to reinstall Windows NT to correct them. Microsoft cannot guarantee that any problems resulting from the use of Registry Editor can be solved. Use this tool at your own risk.

  1. Run the Registry Editor(Regedt32.exe).

  2. Under the HKEY_LOCAL_MACHINE subtree, go to the following subkey:

    \System\CurrentControlSet\Control\SessionManager\

              SubSystems\Windows
    
    
The default data for this value will 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 will need to 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, close Regedt32 and restart the server.

This change will limit the size of desktop heaps created by noninteractive services to 512 KB, which should be ample for most services.

STATUS

Microsoft has confirmed this to be a problem in Windows NT version 4.0. We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.


Additional query words: Exchange SMS SNA SQL Server prodnt stop initialize
initialized heap space heapspace
Keywords : nt32ap ntconfig NTSrvWkst kbenv
Version : 4.0
Platform : winnt


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: September 23, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.