Microsoft Knowledge Base Article
This article contents is Microsoft Copyrighted material.
©2005-©2007 Microsoft Corporation. All rights reserved.
Terms
of Use |
Trademarks
Article ID: 324452 - Last Review: October 30, 2006 - Revision: 2.1
16-Bit Program May Stop Responding While Calling GlobalAlloc
This article was previously published under Q324452
IMPORTANT: This article contains information about modifying the registry. Before you
modify the registry, make sure to back it up and make sure that you understand how to restore
the registry if a problem occurs. For information about how to back up, restore, and edit the
registry, click the following article number to view the article in the Microsoft Knowledge Base:
256986Â
(http://kbalertz.com/Feedback.aspx?kbNumber=256986/EN-US/
)
Description of the Microsoft Windows Registry
If a 16-bit program calls
GlobalAlloc, the program may stop responding, and you may receive the following error message:
Program Name caused a General Protection Fault in
module KRNL386.EXE at 0001:6382
Choose close. Program Name will close.
NOTE: The hexadecimal address where the problem occurs is exactly 0001:6382.
This issue may occur because in Windows 2000 Service Pack 2 (SP2) and later, a program compatibility shim loads in the Ntvdm.exe address space to propagate environment variables. This behavior may affect a 16-bit program, which is sensitive to 16-bit memory allocations.
WARNING: If you use Registry Editor incorrectly, you may cause serious problems that may
require you to reinstall your operating system. Microsoft cannot guarantee that you can solve
problems that result from using Registry Editor incorrectly. Use Registry Editor at your own
risk.
To work around this problem, delete the following registry key, and then restart the computer:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session
Manager\AppCompatibility\ntvdm.exe
The 16-Bit Windows Programming guidelines recommend that
GlobalAlloc be called only when it is necessary. These guidelines recommend that you use
LocalAlloc instead.
Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.
APPLIES TO
- Microsoft Windows 2000 Service Pack 2
- Microsoft Windows 2000 Advanced Server
Community Feedback System
Very often, it takes hours to solve a problem. Very often, you've looked high
and low, and have tried a lot of solutions. When you finally found it, chances
are, it was because someone else helped you. Here's your chance to give back.
Use our community feedback tool to let others know what worked for you and what
didn't.
Please also understand that the community feedback system is not warranted to be
correct, it's simply a system that we've built to let people try and help each
other. If something in a feedback response doesn't make sense to you, or you're
not comfortable making changes that the feedback talks about (like registry
edits), please consult a professional.
Thank you for using kbAlertz.com Feedback System.
-- Scott Cate
Be the first to leave feedback, to help others about this knowledge base
article.
(Optional) Name
(Optional)
Public URL Or Email
Comments
No
HTML -- Text Only Please