BUG: Kernel Objects in System Global DLLs Might Not Be Shared Across Sessions (256265)
The information in this article applies to:
- Microsoft Win32 Application Programming Interface (API), when used with:
- the operating system: Microsoft Windows 2000
This article was previously published under Q256265 SYMPTOMS
On Microsoft Windows NT 4.0-based computers, Terminal Server Edition, the kernel objects (events, mutexes, semaphores, and file mapping objects) created by code within system global DLLs are shared across terminal server sessions.
However, on a Microsoft Windows 2000-based computer, if a system global DLL is dynamically loaded through the LoadLibrary or LoadLibraryEx function, the kernel objects it creates are not shared across sessions.
RESOLUTION
To work around this problem, you can implicitly link a system global DLL to your executable file so that it is loaded into the process address space during initialization of the process. This allows the system to perform fixups on the library prior to running the process.
Alternatively, if you have code control over the library, you can prepend "Global\" to the names of the kernel objects to force them into the global name space, and thereby make them accessible across terminal server sessions.
STATUSMicrosoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article.
Modification Type: | Minor | Last Reviewed: | 11/15/2003 |
---|
Keywords: | kbAPI kbBug kbKernBase kbpending KB256265 |
---|
|