PRB: Starting Out-of-Process COM Server Fails on Windows NT 4.0 Terminal Server (281399)



The information in this article applies to:

  • Microsoft Windows NT Server 4.0 Terminal Server Edition
  • Microsoft Visual Basic Professional Edition for Windows 6.0
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual C++, 32-bit Professional Edition 6.0

This article was previously published under Q281399

SYMPTOMS

Code that runs under a user terminal session on Microsoft Windows NT 4.0 Terminal Server that creates an out-of-process Component Object Model (COM) object server fails with one of the following error messages:

In Visual Basic:
Run-time error '429': ActiveX component can't create object
In MFC/Visual C++:
CO_E_SERVER_EXEC_FAILURE (0x80080005): Server execution failed.
When you check the NT Event Log for errors, the following error message is listed in the logs:
Error 233: No process is on the other end of the pipe.
The process fails before the server is actually started.

CAUSE

When it creates a new instance of an out-of-process server, the COM RPC layer (RPCSS) must pass the environmental variables of the current user session to WinLogon in order to create the process under the correct user context. Due to a buffer limitation, if these variables exceed 4K in size, the information is not passed across the pipe and the call to CreateProcess fails internally.

STATUS

In Service Pack 6 for NT4 Terminal Server, the buffer size has been increased to accommodate this problem. See the following Microsoft Knowledge Base article to obtain the latest service pack:

152734 How to Obtain the Latest Windows NT 4.0 Service Pack


Modification Type:MajorLast Reviewed:6/28/2004
Keywords:kbAutomation kbprb KB281399