BAD_POOL_CALLER (STOP 0x000000c2)

When I Load my driver system stops and
BSOD show me
STOP 0x000000c2
BAD_POOL_CALLER (0x00000007,0x00000b68,…)

whats up???
i dont find documentation in ddk
in my driver i call ExAllocatePool()


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

Please refer to this KB article

How to Debug “Stop 0xC2” or “Stop 0x000000C2” Error Messages (Q265879)
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q265879

Niraj

-----Original Message-----
From: Alex Jones [mailto:xxxxx@mail.ru]
Sent: Wednesday, December 12, 2001 9:53 PM
To: NT Developers Interest List
Subject: [ntdev] BAD_POOL_CALLER (STOP 0x000000c2)

When I Load my driver system stops and
BSOD show me
STOP 0x000000c2
BAD_POOL_CALLER (0x00000007,0x00000b68,…)

whats up???
i dont find documentation in ddk
in my driver i call ExAllocatePool()


You are currently subscribed to ntdev as: xxxxx@netapp.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

Alex,

You should look in the windbg documentation under “Bug Checks”. Of
course it helps if you have the latest version of windbg. You have
passed a bad pointer to ExFreePool. According to the documentation, this
memory has already been returned.

P1 P2 P3 P4
0x07 Reserved Pointer to pool header 0

The current thread attempted to free pool which was already freed

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Alex Jones
Sent: Thursday, December 13, 2001 12:53 AM
To: NT Developers Interest List
Subject: [ntdev] BAD_POOL_CALLER (STOP 0x000000c2)

When I Load my driver system stops and
BSOD show me
STOP 0x000000c2
BAD_POOL_CALLER (0x00000007,0x00000b68,…)

whats up???
i dont find documentation in ddk
in my driver i call ExAllocatePool()


You are currently subscribed to ntdev as:
xxxxx@hollistech.com To unsubscribe send a blank email to
leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

This is a typical case of, either bad IRQL level or double freeing the
same allocation.
Looking at the parameters it appears to be case of freeing the same
allocation.


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

Double freeing is a VERY nasty bug.

The pool has per-CPU lookaside lists for just-freed blocks, this is for speed.
Their pool headers are still non free.
Freeing the same such block twice result in it being put to the list twice, which will result in further allocating it twice for
2 different callers.

I once saw a file name from CREATE path being reallocated twice - for another file name and from a registry key object, and the
bug became visible when the second file name was freed, trying to free the key and fail since Ob objects are protected from
ExFreePool.

Max

----- Original Message -----
From: “Gowtam Karanth”
To: “NT Developers Interest List”
Sent: Friday, December 14, 2001 12:54 PM
Subject: [ntdev] RE: BAD_POOL_CALLER (STOP 0x000000c2)

> This is a typical case of, either bad IRQL level or double freeing the
> same allocation.
> Looking at the parameters it appears to be case of freeing the same
> allocation.
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@storagecraft.com
> To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
>


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com