Folks,
I’ve a question related to above bugcheck in one of our test.
Here is the initial output -
INTERNAL_POWER_ERROR (a0)
The power policy manager experienced a fatal error.
Arguments:
Arg1: 0000000000000009, A fatal error occured while preparing the hibernate
file. <<<<<<< ntstatus.h:#define STATUS_NO_SUCH_DEVICE
((NTSTATUS)0xC000000EL)
Arg2: ffffffffc000000e, Status code
Arg3: 0000000000000001, Mirroring phase
Arg4: 0000000000000000
Debugging Details:
TRIAGER: Could not open triage file : C:\Debuggers\x64\triage\modclass.ini,
error 2
BUGCHECK_STR: 0xA0
DEFAULT_BUCKET_ID: WIN7_DRIVER_FAULT
PROCESS_NAME: System
CURRENT_IRQL: f
LAST_CONTROL_TRANSFER: from fffff80002b82d92 to fffff80002a93490
STACK_TEXT:
fffff880085fd398 fffff800
02b82d92 : 0000000000000000 00000000
00000000
0000000000000000 fffffa80
07ee0000 : nt!RtlpBreakWithStatusInstruction
fffff880085fd3a0 fffff800
02b84158 : fffff80000000004 fffff800
02c93b80
000000000000000f fffffa80
03e356e0 : nt!KiBugCheckDebugBreak+0x12
fffff880085fd400 fffff800
02a9b744 : 0000000000000000 00000000
00000000
0000000000000128 00000000
00000001 : nt!KeBugCheck2+0xcf8
fffff880085fdad0 fffff800
02ce1975 : 00000000000000a0 00000000
00000009
ffffffffc000000e 00000000
00000001 : nt!KeBugCheckEx+0x104
fffff880085fdb10 fffff800
02cdd704 : ffffffffffffffff ffffffff
ffffffff
00000000001287fb 00000000
00000000 : nt!PopEndMirroring+0x145
fffff880085fdbe0 fffff800
02ce1c35 : fffff880085fdd00 fffff880
00000008
0000000000000000 fffffa80
00000008 : nt!MmDuplicateMemory+0xb64
fffff880085fdcd0 fffff800
02d38cce : fffffa8003e356e0 fffffa80
03adb040
fffffa8003adb040 fffff800
02a93157 : nt!PopTransitionToSleep+0xd5
fffff880085fdd40 fffff800
02a8cfe6 : fffff80002c0de80 fffffa80
03e356e0
fffff80002c1bcc0 fffff880
0121fcb0 : nt!PspSystemThreadStartup+0x5a
fffff880085fdd80 00000000
00000000 : fffff880085fe000 fffff880
085f8000
fffff880085fd920 00000000
00000000 : nt!KiStartSystemThread+0x16
STACK_COMMAND: kb
FOLLOWUP_IP:
nt!PopEndMirroring+145
fffff800`02ce1975 cc int 3
SYMBOL_STACK_INDEX: 4
SYMBOL_NAME: nt!PopEndMirroring+145
FOLLOWUP_NAME: MachineOwner
MODULE_NAME: nt
IMAGE_NAME: ntkrnlmp.exe
DEBUG_FLR_IMAGE_TIMESTAMP: 4ce7951a
FAILURE_BUCKET_ID: X64_0xA0_nt!PopEndMirroring+145
BUCKET_ID: X64_0xA0_nt!PopEndMirroring+145
Followup: MachineOwner
Questions are:::::::
-
I’ve not found any doc, that state the cause of arg1 being 9.
-
Initial sanity check like: !vm, !memusage etc. does not indicate any
clue. Also the !process 0 7 does not tell any indications about our driver
being in a stack. Perhaps it did something - like a snipper , and left, not
sure… Looked thru a !irpfind to relate any threads currently running in
any processors to any of the pending/stuck irp **No luck**. So looking for
any pattern being documented on the cloud to see how to get deeper. While
looking thru the disassembled code I see there are stack checking code like
this in the
kernel. Could it be due to verifier on?
nt!PopEndMirroring+0x2ea:
fffff80002ce1b1a 8bc3 mov eax,ebx fffff800
02ce1b1c 488b8c2490000000 mov rcx,qword ptr [rsp+90h]
fffff80002ce1b24 4833cc xor rcx,rsp fffff800
02ce1b27 e8640fdbff call nt!_security_check_cookie
(fffff800`02a92a90)
- Basically it seems like it is trying to write the memory on to
hiberfile, and in the middle it finds that the device is no longer there.
Looking at the disassembled code, it seems like it is going to hibernate (
and yes that is the test case ). So is there any pattern someone
documented somewhere ( blog/docs etc)?.
Thanks
-pro