Pool_Corruption BSOD

tuscaniman

Honorable
Jan 31, 2013
6
0
10,510
Recently I've been getting a BSOD. I don't know if anyone will be able to help me with my issue but I thought I'd get it out there anyways. Any suggestions on what the problem may be? I ran windows debugger and here are the results.

BAD_POOL_HEADER (19)
The pool is already corrupt at the time of the current request.
This may or may not be due to the caller.
The internal pool links must be walked to figure out a possible cause of
the problem, and then special pool applied to the suspect tags or the driver
verifier to a suspect driver.
Arguments:
Arg1: 0000000000000003, the pool freelist is corrupt.
Arg2: fffff8a007cac010, the pool entry being checked.
Arg3: 0000000000000000, the read back flink freelist value (should be the same as 2).
Arg4: fffff8a007cac010, the read back blink freelist value (should be the same as 2).

Debugging Details:
------------------


BUGCHECK_STR: 0x19_3

CUSTOMER_CRASH_COUNT: 1

DEFAULT_BUCKET_ID: WIN8_DRIVER_FAULT

PROCESS_NAME: svchost.exe

CURRENT_IRQL: 1

LAST_CONTROL_TRANSFER: from fffff80085ce8534 to fffff80085af3340

STACK_TEXT:
fffff880`0ff48628 fffff800`85ce8534 : 00000000`00000019 00000000`00000003 fffff8a0`07cac010 00000000`00000000 : nt!KeBugCheckEx
fffff880`0ff48630 fffff800`85ebba49 : fffffa80`00000002 fffff880`0ff48808 00000000`00000001 00000000`00000001 : nt!ExFreePool+0x3ec
fffff880`0ff48700 fffff800`85ebc68c : fffffa80`00000000 fffffa80`0cd96600 00000000`00000000 fffff880`0ff487c0 : nt!ObpAllocateObject+0x129
fffff880`0ff48780 fffff800`85e574f8 : fffff880`0ff489c0 00000000`00000000 00000000`00000002 00000000`000007ff : nt!ObCreateObject+0xec
fffff880`0ff48860 fffff800`85e71b8f : fffff880`0ff48b00 00000075`7203df50 fffff880`0ff48b00 fffff8a0`07859060 : nt!SepDuplicateToken+0xf8
fffff880`0ff48920 fffff800`85e71c55 : fffffa80`204c9080 00000000`00000008 008c8b6d`00000101 00000000`00000000 : nt!NtOpenThreadTokenEx+0x40f
fffff880`0ff48a40 fffff800`85af2353 : fffffa80`204c9080 00000075`72d07550 00000000`00003149 fffffa80`202ac6b0 : nt!NtOpenThreadToken+0x11
fffff880`0ff48a80 000007fc`3ebb2e2a : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KiSystemServiceCopyEnd+0x13
00000075`7203dee8 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : 0x000007fc`3ebb2e2a


STACK_COMMAND: kb

FOLLOWUP_IP:
nt!ExFreePool+3ec
fffff800`85ce8534 cc int 3

SYMBOL_STACK_INDEX: 1

SYMBOL_NAME: nt!ExFreePool+3ec

FOLLOWUP_NAME: Pool_corruption

IMAGE_NAME: Pool_Corruption

DEBUG_FLR_IMAGE_TIMESTAMP: 0

MODULE_NAME: Pool_Corruption

BUCKET_ID_FUNC_OFFSET: 3ec

FAILURE_BUCKET_ID: 0x19_3_nt!ExFreePool

BUCKET_ID: 0x19_3_nt!ExFreePool

Followup: Pool_corruption


Thanks for any help.
 

most likely you have a device driver stomping on memory. how hard is it to reproduce the problem? most of the time if it is a device driver it will be a non Microsoft driver. Microsoft tends to run a driver verifier like utility on the drivers they ship.

what I would do: boot the system using driver verification on various drivers. you are looking for a bad driver to bugcheck when it over runs its allocated memory. Windows will not always load the drivers in the same memory space, this results in one bad driver that writes over another good driver, then the next boot a different driver gets messed with.

you can also have specific hardware problems that are temperature related. Traces and soldered legs to chips can pop off from the solder pad and thermal contraction/expansion can cause the connection to make and break. These are hard to spot, and are a pain to debug.