When a program tries to open a kernel object such as an event or a semaphore that was created in another Terminal Services session, it may not succeed. Calling GetLastError
This behavior can occur for any of the following reasons:
- The Terminal Services server might be running in Remote Administration mode. The sharing of kernel objects is supported only when the server is running in Application Server mode. If the server is running in Remote Administration mode, this feature is disabled. You need to change the Terminal Services configuration.
- The kernel object might be created or opened in a dynamic-link library (DLL) that is loaded explicitly by the program by using the LoadLibrary or LoadLibraryEx calls. Such objects are not shared across sessions even if the DLL is marked for global usage by using the register command. This article lists a fix to resolve this issue.
To resolve this problem, obtain the latest service pack for Windows 2000. For additional information, click the following article number to view the article in the
Microsoft Knowledge Base:
How to Obtain the Latest Windows 2000 Service Pack
The English version of this fix should have the following file attributes or later:
Date Time Version Size File name
06/02/2000 06:05p 5.0.2195.2096 45,328 Tsappcmp.dll
Mark the program (.exe file) that loads the DLL for global usage. Note that this works only if the Terminal Services server is running in Application Server mode.
Microsoft has confirmed that this is a problem in Microsoft Windows 2000. This problem was first corrected in Windows 2000 Service Pack 2.
For additional information about how to install Windows 2000 and Windows 2000 hotfixes at the same time, click the article number below
to view the article in the Microsoft Knowledge Base:
Installing Microsoft Windows 2000 and Windows 2000 Hotfixes