User32.dll or Kernel32.dll Fails to Initialize
Microsoft Article Q184802
Windows Users - If you experience one or more of the following symptoms:
- the error message "Initialization of the dynamic library
...\system32\user32.dll failed" when starting a runtime, or
- an exit code 128 in the ICEXEC log when starting a runtime, or
- an exit code 128 In the ICNETD log when starting an icnets
- no more than 4-10 runtimes will run on serial lines or telnet sessions or icnet surrogates will logon, then
look at the article entitled "User32.dll or Kernel32.dll Fails to Initialize" (Article ID: Q184802) posted in the Microsoft Support Knowledge Base which gives information on updating the registry for a particular value for heap memory. This article describes updating the \System\CurrentControlSet\Control\Session Manager\SubSystems\Windows subkey under HKEY_LOCAL_MACHINE in the registry where there is normally a "SharedSection=1024,3072" in the data for this value which you must replace with "SharedSection=1024,3072,512" and reboot for the new value to take effect.
ICINFO displays the value for this registry entry as "NT Heap".
Windows Users - If you experience file corruption when using standard Microsoft networking (i.e., you open files using drive letters that have been mapped to shared drives/directories on another machine) then you need to make one of the following additions or modifications in the Windows registry.
On a server, add or change "EnableOpLocks" to have a
DWORD value of "0" in the
On a client, opportunistic locking can be also disabled
specifically for that machine. If you have made the above change to
the server changing the client is not necessary. Otherwise, add or
change "UseOpportunisticLocking" to have a DWORD value
of "0" in the
ICINFO displays both of these values.