Microsoft KB Archive/257655

{|
 * width="100%"|

Ddraw.dll Dynamic Load May Not Work in Some Cases

 * }

Q257655

-

The information in this article applies to:


 * Microsoft DirectX Software Development Kit, versions 2.0, 3.0

-

SYMPTOMS
Ddraw needs access to a certain virtual memory address to use as a global heap space. If this address is already occupied, Ddraw.dll does not load and the following error message occurs:

Initialization of the dynamic link library C:\Winnt\System32\Ddraw.dll failed. The process is terminating abnormally.

CAUSE
When Ddraw.dll is loaded, a file-mapped memory block is allocated. This block is required to be at the same virtual address for all processes so that it can be shared cross-process. Ddraw.dll owns management of video adapter video memory and needs it to be the same for all processes that attach to this dynamic-link library (DLL). The block is of size 0x100008 and starts at 0x43000000 in Microsoft Windows NT 4.0. If this block is occupied, the DLL initialization does not succeed.

WORKAROUND
Developers should avoid using that address range. A workaround for existing programs using Ddraw is to load Ddraw first and let it use that address so that conflicting dynamic-link libraries (DLLs) can dynamically relocate.

STATUS
This behavior is by design.

Additional query words:

Keywords : kberrmsg

Issue type : kbprb

Technology : kbSDKDirectXsearch kbAudDeveloper kbSDKSearch kbSDKDirectX200 kbSDKDirectX300