Microsoft KB Archive/245561

{|
 * width="100%"|

PRB: Shutdown Stops Responding When Executing Software Interrupts

 * }

Q245561

-

The information in this article applies to:


 * Microsoft Windows 98 Driver Development Kit (DDK)

-

SYMPTOMS
On Microsoft Windows 98 Second Edition, the computer may stop responding when Windows is shutting down if a VxD calls Exec_VxD_Int to execute a software interrupt.

CAUSE
After broadcasting the End_PM_App System Control message, virtual machine manager (VMM) will delete the local descriptor table (LDT). Exec_VxD_Int results in VMM trying to load the FS hardware register with a particular selector value. If Exec_VxD_Int is called after the LDT is deleted, the selector that is loaded into the FS will be invalid, resulting in a General Protection Fault.

RESOLUTION
The following are two possible work arounds:


 * Enable FastShutdown (also known as FastReboot). In the registry under HKLM\System\CurrentControlSet\Control\Shutdown is a string value named FastReboot. By setting FastReboot to the number one, the LDT will not be deleted as FastShutdown eliminates much of the standard shutdown processing.
 * VxDs processes the End_PM_App System Control message in order to determine when to stop calling Exec_VxD_Int. The LDT is deleted after the End_PM_App message is broadcast to all devices. The End_PM_App message is broadcast whenever a protected-mode application is ending. On receipt of the End_PM_App message, VxDs will test the Microsoft virtual machine (Microsoft VM) handle by calling Test_Sys_VM_Handle. If it is the Microsoft VM handle, VxDs will stop calling Exec_VxD_Int.

STATUS
This behavior is by design.