Novell Client for Windows 2000/XP/2003
Citrix Presentation Server 4.0
Microsoft Windows Server 2003
Microsoft Windows 2000 Server
Error: Bugcheck 0xC000021A occurs because WINLOGON.EXE process shut down unexpectedly with a 0xC0000005 (access violation) status.
When logging on to a terminal session on a Windows Server 2003 or Windows 2000 Server machine with Citrix Presentation Server 4.0 and the Novell Client for Windows 2000/XP/2003 installed (any version), the WINLOGON.EXE instance for that terminal session may crash or become unresponsive.
An access violation (status 0xC0000005) may occur specifically on the WINLOGON.EXE process for a terminal session. Exactly when or where access violation may occur depends upon the environment variables that are defined and what GINAs in addition to Citrix's CTXGINA.DLL and Novell's NWGINA.DLL are involved.
This issue is resolved by an updated CTXGINA.DLL for Citrix Presentation Server 4.0.
Hotfix PSE400R02W2K040 - For Citrix Presentation Server 4.0 for Windows 2000 Server
Hotfix PSE400R02W2K3064 - For Citrix Presentation Server 4.0 for Windows Server 2003
When Citrix's CTXGINA.DLL is chaining through to Microsoft's MSGINA.DLL, CTXGINA.DLL will pass along the Windows environment string block provided by WINLOGON.EXE as-is. When CTXGINA.DLL is calling chaining through to Novell's NWGINA.DLL however, a copy of the environment block is made by CTXGINA.DLL and the copy is what's passed to NWGINA.DLL.
The manner in which CTXGINA.DLL's copy of the environment block was allocated and populated contained an issue which could cause NWGINA.DLL or whichever GINA the environment block was passed to crash when trying to process the environment strings contained. Note the crash is not necessarily occurring in NWGINA.DLL, if NWGINA.DLL in turn had passed the environment block provided by CTXGINA.DLL down to another GINA, such as Microsoft's MSGINA.DLL.
This issue does not occur when the Novell Client for Windows 2000/XP/2003 is removed, because the Citrix CTXGINA.DLL no longer attempts to make its own copy of the environment strings block provided by WINLOGON.EXE.