This article was previously published under Q156484
Cmd.exe, Perl.exe, or other console-mode applications may fail toinitialize properly and terminate prematurely when launched by a serviceusing the CreateProcess() or CreateProcessAsUser() APIs. The callingprocess has no way of knowing that the launched console-mode applicationhas terminated prematurely.
In some instances, calling GetExitCode() against the failed processindicates the following exit code:
128L ERROR_WAIT_NO_CHILDREN - There are no child processes to wait for.
In multithreaded applications, the premature termination causes desktopheap leaks. Over time the desktop heap is exhausted, which results inUser32.dll or Kernel32.dll initialization errors.
Internet Information Server (IIS) may exhibit this problem intermittently when processing CGI or Perl scripts. In this case the browser returns the following error when executing CGI scripts:
The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are:.
Remote Command Service (RCMD) may also exhibit this problem. RCMD clients experience connect and disconnect messages when they attempt to access a server running RCMD service. This may be used as a test application to see if another service is running into this problem.
Other third-party services (such as Patrol from BMC Software) are also known to fail because of this problem.
To resolve this problem, please see the following articles in the MicrosoftKnowledge Base for more information:
ARTICLE-ID: 142676 TITLE : How to correct common User32.dll file errors
ARTICLE-ID: 175687 TITLE : Win32k.sys Causes STOP 0x0000001e and 0x0000000a On SMP