Microsoft KB Archive/158308

= XFOR: Err Msg: Initialization of Dynamic Link Library Failed =

Article ID: 158308

Article Last Modified on 10/28/2006

-

APPLIES TO


 * Microsoft Exchange Server 4.0 Standard Edition

-



This article was previously published under Q158308



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.  Start Registry Editor (Regedt32.exe).  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   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  Quit Registry Editor and restart the computer.</ol>

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.

<div class="references_section">