Skip navigation

Why do I get the message 'Initialization of USER32.dll or KERNEL32.dll' failed?

A. Every desktop object on the system has a desktop heap associated with it. The desktop object uses the heap to store menus, hooks, strings, and windows.

There is soft limit on the Desktop Heap size (128KB). This can be expanded by changing a parameter in the Registry as follows:

  1. Start the registry editor (regedt32.exe)
  2. Move to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems
  3. Double click on the Windows value
  4. The data will be of the format:
    %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
  5. Find the SharedSection value and add ,512 or ,1024 after the second number, for example:
    %SystemRoot%\system32\csrss.exe ObjectDirectory=\Windows SharedSection=1024,3072,1024 Windows=On SubSystemType=Windows ServerDll=basesrv,1 ServerDll=winsrv:UserServerDllInitialization,3 ServerDll=winsrv:ConServerDllInitialization,2 ProfileControl=Off MaxRequestThreads=16
    Setting to ,512 will set the desktop heap to 512KB for each desktop associated with non- interactive window stations. 1024 would set it to 1MB.
  6. Close the registry editor
  7. Reboot the machine

If you try and set the value to anything less than 128 then a default of 128 will be used by the system, ignoring you value.


Hide comments

Comments

  • Allowed HTML tags: <em> <strong> <blockquote> <br> <p>

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
Publish