On your Windows NT, Windows 2000, and Windows XP computer you may receive the following error message while your PC is running:
"STOP 0x0000007F (UNEXPECTED_KERNEL_MODE_TRAP)"
Cause of the Error
You may encounter this error message when one of the following conditions are true:
- There is a hardware or a software problem on the system.
- You are attempting to over clock the speed of the processor of your computer.
STOP 0x0000007F (UNEXPECTED_KERNEL_MODE_TRAP) error means that a trap occurred in the kernel mode of the system and this trap is either always fatal or is a trap that kernel is not allowed to have. The most common cause of the STOP 0x0000007F error in this situation is:
- A low-level hardware problem, such as corrupt RAM or memory has occurred.
- The system motherboard is malfunctioning.
- Memory modules on the system are mismatched.
The parameters of the stop error message are one of the first indications of the cause of the error.
For instance, if the error message is:
"STOP 0x0000007F (0x000000XX, 0x00000000, 0x00000000, 0x00000000)
Then, the first parameter is most essential in the process of determining the cause of the error.
The trap in the kernel mode that causes the STOP 0x0000007F error may occur due to many different reasons. These different traps that can cause the stop error are listed in the Intel x86 microprocessor reference manuals. Some of the most common causes are:
First Parameter Cause of the Error
0x00000000 Divide by Zero Error
0x00000005 Bounds Check Fault
0x00000006 Invalid Opcode
0x00000008 Double Fault
Let us now see how each of these errors occur.
- Divide by zero error: The divide by zero error occurs when the division instruction, DIV is executed and the divisor is 0. Problems in the system memory (RAM), malfunctions in other system hardware and software failures are one of the main causes of these errors.
- Overflow: This error occurs when the overflow (OF) flag is set and the system processor attempts to execute a call to an interrupt handler.
- Bounds check fault: A BOUND instruction helps in ensuring that a signed array stays within its range. The bounds check fault error occurs when the processor finds that the operand used to execute a BOUND instruction exceeds the specified limits.
- Invalid opcode: You encounter this problem when your system’s processor tries to run an invalid instruction. This happens when the pointer to the instruction is either corrupt or is pointing to an incorrect location. A damaged or corrupt memory is one of the main causes of this problem.
- Double fault: Your system usually handles two exceptions serially. However, there are some exceptions that cannot be handled serially and a double fault occurs. Hardware problems related to RAM, bus or CPU and kernel stack overflows are major causes of these problems.
As required, you can use one of the following methods to resolve the error message:
- If the error message indicates a hardware or software problem behind the trap, you may use one of the following methods to determine the faulty hardware:
- Use a memory diagnostics utility to check the memory chip for problems. Replace the RAM chip if it is reported faulty. Also, ensure that all RAM chips on your computer run at the same speed.
- Remove or swap various hardware devices such as adaptors, controllers and other computer peripherals to identify the hardware that may be causing the error. In case you find one, remove or replace this hardware to resolve the error.
- Change the motherboard of the computer to check if the current motherboard is causing the error.
- In case the computer processor is over clocked, then change its speed to the specification that is supported by the processor.
- Check for and install updates for your system hardware drivers and BIOS, if available.
- Use a registry cleaner tool, such as RegServe to clean your registry and ensure that no hardware or software problems occur due to damaged or corrupt registry files.