XFOR: Err Msg: Initialization of Dynamic Link Library Failed

Article translations Article translations
Article ID: 158308 - View products that this article applies to.
This article was previously published under Q158308
Expand all | Collapse all

SYMPTOMS

Starting more than seven combined instances of the PCMTA, MSMI, IMC, Schedule+ Free & Busy Connector, MTA, or Directory Synchronization fails on a system running Windows NT 4.0 (or Windows NT 4.0 SP1) and Microsoft Exchange Server 4.0. Seven instances is generally the limit for running these services concurrently; however, this may vary, depending on the order in which the services are started. The eighth instance generates an error and it fails to start. The error message is as follows:
Initialization of the dynamic link library D:\WINNT\system32\USER32.dll has failed. The process is terminating abnormally.
This is followed by a second error message:
Could not start the <%insert service name here%> on <%computername%>.
Error 2186: The service is not responding to the control function.
No event log errors are reported (with logging at maximum for Microsoft Exchange).

CAUSE

The system has run out of memory for creating a new desktop heap for the service being started.

RESOLUTION

To fix this problem, edit the registry and restart the computer.

WARNING: Using Registry Editor incorrectly can cause serious problems that may require you to reinstall Windows NT. Microsoft cannot guarantee that problems resulting from the incorrect use of Registry Editor can be solved. Use Registry Editor at your own risk.
  1. Start 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
    						
  3. 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
    						
  4. Quit Registry Editor and restart the computer.
This change will limit the size of desktop heaps created by non-interactive services to 512K, which should be ample for most services.

For a fuller definition of what the first two parameters of SharedSection mean, see Microsoft Knowledge Base article 126962, referenced below.

REFERENCES

For additional information, please see the following articles in the Microsoft Knowledge Base:
142676 Overcoming User32.dll Initialization Failures

126962 Increasing the Desktop Application Heap

Properties

Article ID: 158308 - Last Review: October 28, 2006 - Revision: 3.4
APPLIES TO
  • Microsoft Exchange Server 4.0 Standard Edition
Keywords: 
KB158308
Retired KB Content Disclaimer
This article was written about products for which Microsoft no longer offers support. Therefore, this article is offered "as is" and will no longer be updated.

Give Feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com