Microsoft KB Archive/167968

= Access Violation Causes 16-Bit Applications to Silently Quit =

Article ID: 167968

Article Last Modified on 11/1/2006

-

APPLIES TO


 * Microsoft Windows NT Workstation 3.5
 * Microsoft Windows NT Workstation 3.51
 * Microsoft Windows NT Workstation 4.0 Developer Edition
 * Microsoft Windows NT Server 3.5
 * Microsoft Windows NT Server 3.51
 * Microsoft Windows NT Server 4.0 Standard Edition

-



This article was previously published under Q167968



SYMPTOMS
16-bit applications, both DOS and Windows based, run successfully for a period of time and then quit without cause.



RESOLUTION
Verify that VIF and VIP are not turned on at the same time. This problem can be avoided by disabling the Pentium Virtual Machine Extensions (VME) because VIF and VIP are only used by VME support. To disable the use of VME in Windows NT, add the following value to the registry:

WARNING: Using Registry Editor incorrectly can cause serious, system-wide problems that may require you to reinstall Windows NT to correct them. Microsoft cannot guarantee that any problems resulting from the use of Registry Editor can be solved. Use Registry Editor at your own risk.  Start Registry Editor (Regedt32.exe) and go to the following subkey:

  On the Edit menu, click Add Value. Enter the following:

     Value Name: DisableVme Data Type: REG_SZ

(hit OK here)

     Data: 1  Click OK, and then quit Registry Editor. Shutdown and restart you computer.

Once this value is entered and you have restarted your computer, test the application to verify that the Virtual Dos Machine (VDM) no longer causes an access violation and causes the application to quit.



MORE INFORMATION
If you run the application under a debugger such as Ntsd.exe, the application will break to the debugger instead of quitting. The debugger shows that the VDM caused an access violation after carrying out an STI instruction (this indicates that the program currently running does not have high enough privilege to enable hardware interrupts).

<pre class="fixed_text">NTSD: access violation eax=00010240 ebx=0000000a ecx=00004000 edx=00000010 esi=0001573c edi=0000000a eip=000053e0 esp=0000079c ebp=000bea74 iopl=0 vip vif nv up ei pl nz na ponc cs=fe2e ss=00a7  ds=0040  es=0000  fs=0000  gs=0000 efl=001b0206 fe2e:53e0 ebf8           jmp    53da

0:000>kv ChildEBP RetAddr Args to Child 0000ea74 00000000 00000000 00000000 00000000 0x53e0 [Stdcall: 0]

0:000> u fe2e:53e0-1 fe2e:53df fb             sti fe2e:53e0 ebf8           jmp     53da

Additional query words: prodnt drops out disappear stop close

Keywords: kbfix kbinfo KB167968

-

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

© Microsoft Corporation. All rights reserved.