Microsoft KB Archive/297719

= PRB: DDraw.dll Cannot Be Loaded by an Executable Running Under Multiple User Accounts =

PSS ID Number: 297719

Article Last Modified on 5/12/2003

-

The information in this article applies to:

 Microsoft Win32 Application Programming Interface (API), when used with:  the operating system: Microsoft Windows NT 4.0

 the operating system: Microsoft Windows 2000 

-



This article was previously published under Q297719



SYMPTOMS
DDraw.dll cannot be loaded simultaneously by two instances of an executable file if those instances are running under different user accounts. This problem will typically manifest itself as a dynamic link library (DLL) initialization failure. More specifically, the second instance of the process will fail to run because it cannot initialize DDraw.dll.



CAUSE
Each process that links with DDraw.dll will create a mutex that is used internally by DDraw.dll. If two instances of the same executable file are run simultaneously, they will share the same mutex. The security on this mutex will not allow it to be opened by a thread that is running under a different user account than the thread that created the mutex (unless the second user is a member of the local administrators group).



STATUS
This behavior is by design for DirectX 8.0 and earlier.

<div class="moreinformation_section">

MORE INFORMATION
In Windows 2000, OpenGL32.dll is dependent on DDraw.dll. Previous versions of OpenGL32.dll did not have this dependency. As a result of this new dependency, some applications that ran under multiple accounts simultaneously on Windows NT 4.0 may not run under multiple accounts on Windows 2000.

Keywords: kbprb KB297719

Technology: kbAudDeveloper kbOSWin2000 kbOSWinNT400 kbOSWinNTSearch kbOSWinSearch kbWin32API kbWin32sSearch

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© 2004 Microsoft Corporation. All rights reserved.