PRB: Shutdown Stops Responding When Executing Software Interrupts (245561)
The information in this article applies to:
- Microsoft Windows 98 Driver Development Kit (DDK)
This article was previously published under Q245561 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.
REFERENCES
See the Microsoft Windows 98 DDK for more information on VMM services.
Modification Type: | Major | Last Reviewed: | 3/8/2000 |
---|
Keywords: | kbprb KB245561 |
---|
|