Check it out, yo!
0: kd> !analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
UNEXPECTED_KERNEL_MODE_TRAP_M (1000007f)
This means a trap occurred in kernel mode, and it's a trap of a kind
that the kernel isn't allowed to have/catch (bound trap) or that
is always instant death (double fault). The first number in the
bugcheck parens is the number of the trap (8 = double fault, etc)
Consult an Intel x86 family manual to learn more about what these
traps are. Here is a *portion* of those codes:
If kv shows a taskGate
use .tss on the part before the colon, then kv.
Else if kv shows a trapframe
use .trap on that value
Else
.trap on the appropriate frame will show where the trap was taken
(on x86, this will be the ebp that goes with the procedure KiTrap)
Endif
kb will then show the corrected stack.
Arguments:
Arg1: 00000008, EXCEPTION_DOUBLE_FAULT
Arg2: 80042000
Arg3: 00000000
Arg4: 00000000
Double fault is almost always hardware... but we'll look further.
0: kd> r
eax=00000000 ebx=00000000 ecx=00000000 edx=00000000 esi=85d865f0 edi=00000000
eip=804f577d esp=f76f6a9c ebp=f7676ae4 iopl=0 nv up ei pl zr na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00010246
nt!KeSetEvent+0x77:
804f577d 5f pop edi
I wouldn't expect you to know this, but if you look at ESP(stack pointer) and EBP(base stack pointer), you'll notice that ESP is a larger number than EBP. This should NEVER happen, because the stack starts high in memory and works it's way down toward lower numbers. ESP should always be smaller than EBP.
0: kd> .formats esp^ebp
Evaluate expression:
Hex: 00080078
Decimal: 524408
Octal: 00002000170
Binary: 00000000 00001000 00000000 01111000
Chars: ...x
Time: Tue Jan 06 17:40:08 1970
Float: low 7.34852e-040 high 0
Double: 2.59092e-318
If you look at the binary difference between ESP and EBP, you'll notice on the high end a single 1. If that bit was flipped to a 0 in ESP, you would have a valid value for ESP. The hex value with that bit flipped to a 0 is F7676A9C, which is smaller than EBP and in the range for the stack.
0: kd> !cpuid
CP F/M/S Manufacturer MHz
0 15,2,9 GenuineIntel 2405
Unable to get information for processor 1
Check it out. Hope this helps!
842465 Stop 7F, 0x00000008 (double-fault) error occurs because of a single-bit
http://support.microsoft.com/?id=842465