Microsoft KB Archive/256265

{|
 * width="100%"|

BUG: Kernel Objects in System Global DLLs Might Not Be Shared Across Sessions

 * }

Q256265

-

The information in this article applies to:


 * Microsoft Win32 Application Programming Interface (API), included with:
 * the operating system: Microsoft Windows 2000

-

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.

STATUS
Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article.

Additional query words:

Keywords : kbAPI kbKernBase kbOSWin2000bug kbSDKWin32 kbDSupport kbGrpDSKernBase

Issue type : kbbug

Technology : kbAudDeveloper kbWin32sSearch kbWin32API