General Causes of STOP 0x0000007F Errors
ID: Q137539
|
The information in this article applies to:
-
Microsoft Windows NT Workstation versions 3.5, 3.51, 4.0
-
Microsoft Windows NT Server versions 3.5, 3.51, 4.0
SYMPTOMS
You may receive the following error message while running Windows NT:
STOP 0x0000007F (UNEXPECTED_KERNEL_MODE_TRAP)
CAUSE
These error messages can occur if either of the following conditions
exists:
- Your computer is having hardware or software problems (hardware failure
is the most common cause).
- You try to over clock the speed of your computer's processor (for
example, you set a 150 MhZ processor to run at 187 MhZ).
The above STOP error means a trap occurred in kernel mode and the trap is
either one the kernel is not allowed to have or is always fatal. The most
common causes of a STOP 0x7F are:
- Low-level hardware corruption, such as corrupt memory (RAM)
- Mismatched memory modules
- A malfunctioning motherboard
To determine an approximate cause, examine the parameters at the top of
the STOP screen:
**STOP 0x0000007F (0x000000XX, 0x00000000, 0x00000000, 0x00000000)
UNEXPECTED_KERNEL_MODE_TRAP
The most important parameter is the first one (0x0000000X) which may have
several different values. The cause of this trap can vary, depending on
the value of this parameter. All traps that cause a STOP 0x7F can be found
in any Intel x86 microprocessor reference manual as they are specific to
the x86 platform. Here are some of the most common ones:
Values Meaning
---------- --------------------
0x00000000 Divide by Zero Error
0x00000004 Overflow
0x00000005 Bounds Check Fault
0x00000006 Invalid Opcode
0x00000008 Double Fault
Divide by Zero Error
A divide by zero is caused when a DIV instruction is executed and the
divisor is 0. Memory corruption (or other hardware problems) or software
failures can cause this.
Overflow
The overflow instruction occurs when the processor executes a call to an
interrupt handler when the overflow (OF) flag is set.
Bounds Check Fault
This fault is generated when the processor, while executing a BOUND
instruction, finds the operand exceeds the specified limits. A BOUND
instruction is used to ensure that a signed array index is within a
certain range.
Invalid Opcode
This fault is generated when the processor attempts to execute an invalid
instruction. This is generally caused when the instruction pointer has
become corrupted and is pointing to the wrong location. The most common
cause of this is hardware memory corruption.
Double Fault
A double fault occurs when an exception occurs while trying to call the
handler for a prior exception. Normally, the two exceptions can be handled
serially, however there are several exceptions that cannot be handled
serially and in this situation the processor signals a double fault. This
is almost always caused by hardware problems.
RESOLUTION
To resolve this issue, use the appropriate method:
- If either software or hardware can cause a particular trap, a debug is
required to determine which is the cause. If you suspect a hardware
problem, try the following hardware troubleshooting steps:
- Run diagnostic software and test the RAM in the computer. Replace
any RAM reported as bad. Also, make sure all the RAM in the computer
is the same speed.
- Try removing or swapping out controllers, cards, or other
peripherals.
- Try a different motherboard on the computer.
- If you are over clocking the speed of your processor, set it back to
the speed at which it is designed to run.
For more information on processor faults, consult an Intel processor
reference manual.
Additional query words:
3.50 3.51 4.00 prodnt tshoot
Keywords : kberrmsg ntstop NTSrvWkst
Version : 3.5 3.51 4.0
Platform : winnt
Issue type :
Last Reviewed: January 20, 1999