<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.3.3" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>
<channel>
	<title>Comments on: Crash Dump Analysis Patterns (Part 23b)</title>
	<link>https://www.dumpanalysis.org/blog/index.php/2007/08/25/crash-dump-analysis-patterns-part-23b/</link>
	<description>Structural and Behavioral Patterns for Software Diagnostics, Forensics and Prognostics</description>
	<pubDate>Wed, 06 May 2026 23:29:47 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
		<item>
		<title>By: Dmitry Vostokov</title>
		<link>https://www.dumpanalysis.org/blog/index.php/2007/08/25/crash-dump-analysis-patterns-part-23b/#comment-741692</link>
		<dc:creator>Dmitry Vostokov</dc:creator>
		<pubDate>Mon, 04 Jan 2016 22:59:00 +0000</pubDate>
		<guid>https://www.dumpanalysis.org/blog/index.php/2007/08/25/crash-dump-analysis-patterns-part-23b/#comment-741692</guid>
		<description>DRIVER_PAGE_FAULT_IN_FREED_SPECIAL_POOL (d5)
Memory was referenced after it was freed.
This cannot be protected by try-except.
When possible, the guilty driver's name (Unicode string) is printed on
the bugcheck screen and saved in KiBugCheckDriver.</description>
		<content:encoded><![CDATA[<p>DRIVER_PAGE_FAULT_IN_FREED_SPECIAL_POOL (d5)<br />
Memory was referenced after it was freed.<br />
This cannot be protected by try-except.<br />
When possible, the guilty driver&#8217;s name (Unicode string) is printed on<br />
the bugcheck screen and saved in KiBugCheckDriver.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dmitry Vostokov</title>
		<link>https://www.dumpanalysis.org/blog/index.php/2007/08/25/crash-dump-analysis-patterns-part-23b/#comment-621180</link>
		<dc:creator>Dmitry Vostokov</dc:creator>
		<pubDate>Fri, 30 Nov 2012 16:18:28 +0000</pubDate>
		<guid>https://www.dumpanalysis.org/blog/index.php/2007/08/25/crash-dump-analysis-patterns-part-23b/#comment-621180</guid>
		<description>If you see some leaking pool tag you can find its entries using this command !poolfind ABCD and dump their memory</description>
		<content:encoded><![CDATA[<p>If you see some leaking pool tag you can find its entries using this command !poolfind ABCD and dump their memory</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dmitry Vostokov</title>
		<link>https://www.dumpanalysis.org/blog/index.php/2007/08/25/crash-dump-analysis-patterns-part-23b/#comment-621177</link>
		<dc:creator>Dmitry Vostokov</dc:creator>
		<pubDate>Fri, 30 Nov 2012 16:14:56 +0000</pubDate>
		<guid>https://www.dumpanalysis.org/blog/index.php/2007/08/25/crash-dump-analysis-patterns-part-23b/#comment-621177</guid>
		<description>Recentlyh found that search needs to be done without h prefix: 
findstr /m /l ABCD</description>
		<content:encoded><![CDATA[<p>Recentlyh found that search needs to be done without h prefix:<br />
findstr /m /l ABCD</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sinni</title>
		<link>https://www.dumpanalysis.org/blog/index.php/2007/08/25/crash-dump-analysis-patterns-part-23b/#comment-430559</link>
		<dc:creator>Sinni</dc:creator>
		<pubDate>Mon, 27 Feb 2012 22:13:55 +0000</pubDate>
		<guid>https://www.dumpanalysis.org/blog/index.php/2007/08/25/crash-dump-analysis-patterns-part-23b/#comment-430559</guid>
		<description>In my case, special pool is enabled and it shows both the free happening through same thread, interestingly, both the stacks are exactly same. 

2: kd&#62; .bugcheck
Bugcheck code 000000C2
Arguments 00000000`00000007 00000000`00001097 00000000`00210007 fffff8a0`04b98e00
2: kd&#62;  !pool fffff8a0`04b98e00 2
Pool page fffff8a004b98e00 region is Paged pool
*fffff8a004b98df0 size:  210 previous size:   70  (Free)      *MmSt
		Pooltag MmSt : Mm section object prototype ptes, Binary : nt!mm
2: kd&#62;  !verifier 0x80 fffff8a0`04b98e00

Log of recent kernel pool Allocate and Free operations:

There are up to 0x10000 entries in the log.

Parsing 0x0000000000010000 log entries, searching for address 0xfffff8a004b98e00.


=================================
Pool block fffff8a004b98df0, Size 0000000000000210, Thread fffffa80122674f0
fffff80001b0bc9a nt!VfFreePoolNotification+0x4a
fffff800017a367c nt!ExDeferredFreePool+0x126d
fffff8000165b880 nt!MiDeleteSegmentPages+0x35c
fffff8000195cf2f nt!MiSegmentDelete+0x7b
fffff80001637e07 nt!MiCleanSection+0x2f7
fffff80001676754 nt!ObfDereferenceObject+0xd4
fffff80001661170 nt!CcDeleteSharedCacheMap+0x1bc
fffff80001699880 nt!CcUninitializeCacheMap+0x2f0
fffff880030ecfa6 picadm!OwCommonCleanup+0x4b6
fffff880030ec840 picadm!FsdCleanup+0x2a8
fffff880030ec994 picadm!OwFsdCleanup+0x38
fffff80001b16750 nt!IovCallDriver+0xa0
fffff800019824bf nt!IopCloseFile+0x11f
=================================
Pool block fffff8a004b98df0, Size 0000000000000210, Thread fffffa80122674f0
fffff80001b0bc9a nt!VfFreePoolNotification+0x4a
fffff800017a367c nt!ExDeferredFreePool+0x126d
fffff8000165b880 nt!MiDeleteSegmentPages+0x35c
fffff8000195cf2f nt!MiSegmentDelete+0x7b
fffff80001637e07 nt!MiCleanSection+0x2f7
fffff80001676754 nt!ObfDereferenceObject+0xd4
fffff80001661170 nt!CcDeleteSharedCacheMap+0x1bc
fffff80001699880 nt!CcUninitializeCacheMap+0x2f0
fffff880030ecfa6 picadm!OwCommonCleanup+0x4b6
fffff880030ec840 picadm!FsdCleanup+0x2a8
fffff880030ec994 picadm!OwFsdCleanup+0x38
fffff80001b16750 nt!IovCallDriver+0xa0
fffff800019824bf nt!IopCloseFile+0x11f

But current thread has no sign of this driver : picadm.sys. It is something like this:

2: kd&#62; k
Child-SP          RetAddr           Call Site
fffff880`02378b28 fffff800`017a360e nt!KeBugCheckEx
fffff880`02378b30 fffff800`0178a53e nt!ExDeferredFreePool+0x11eb
fffff880`02378be0 fffff800`01798a0a nt!MiDeleteCachedSubsection+0x10ae
fffff880`02378c90 fffff800`01798b43 nt!MiRemoveUnusedSegments+0x8a
fffff880`02378cc0 fffff800`01910726 nt!MiDereferenceSegmentThread+0x103
fffff880`02378d40 fffff800`0164fae6 nt!PspSystemThreadStartup+0x5a
fffff880`02378d80 00000000`00000000 nt!KiStartSystemThread+0x16

Please suggest!</description>
		<content:encoded><![CDATA[<p>In my case, special pool is enabled and it shows both the free happening through same thread, interestingly, both the stacks are exactly same. </p>
<p>2: kd&gt; .bugcheck<br />
Bugcheck code 000000C2<br />
Arguments 00000000`00000007 00000000`00001097 00000000`00210007 fffff8a0`04b98e00<br />
2: kd&gt;  !pool fffff8a0`04b98e00 2<br />
Pool page fffff8a004b98e00 region is Paged pool<br />
*fffff8a004b98df0 size:  210 previous size:   70  (Free)      *MmSt<br />
		Pooltag MmSt : Mm section object prototype ptes, Binary : nt!mm<br />
2: kd&gt;  !verifier 0&#215;80 fffff8a0`04b98e00</p>
<p>Log of recent kernel pool Allocate and Free operations:</p>
<p>There are up to 0&#215;10000 entries in the log.</p>
<p>Parsing 0&#215;0000000000010000 log entries, searching for address 0xfffff8a004b98e00.</p>
<p>=================================<br />
Pool block fffff8a004b98df0, Size 0000000000000210, Thread fffffa80122674f0<br />
fffff80001b0bc9a nt!VfFreePoolNotification+0&#215;4a<br />
fffff800017a367c nt!ExDeferredFreePool+0&#215;126d<br />
fffff8000165b880 nt!MiDeleteSegmentPages+0&#215;35c<br />
fffff8000195cf2f nt!MiSegmentDelete+0&#215;7b<br />
fffff80001637e07 nt!MiCleanSection+0&#215;2f7<br />
fffff80001676754 nt!ObfDereferenceObject+0xd4<br />
fffff80001661170 nt!CcDeleteSharedCacheMap+0&#215;1bc<br />
fffff80001699880 nt!CcUninitializeCacheMap+0&#215;2f0<br />
fffff880030ecfa6 picadm!OwCommonCleanup+0&#215;4b6<br />
fffff880030ec840 picadm!FsdCleanup+0&#215;2a8<br />
fffff880030ec994 picadm!OwFsdCleanup+0&#215;38<br />
fffff80001b16750 nt!IovCallDriver+0xa0<br />
fffff800019824bf nt!IopCloseFile+0&#215;11f<br />
=================================<br />
Pool block fffff8a004b98df0, Size 0000000000000210, Thread fffffa80122674f0<br />
fffff80001b0bc9a nt!VfFreePoolNotification+0&#215;4a<br />
fffff800017a367c nt!ExDeferredFreePool+0&#215;126d<br />
fffff8000165b880 nt!MiDeleteSegmentPages+0&#215;35c<br />
fffff8000195cf2f nt!MiSegmentDelete+0&#215;7b<br />
fffff80001637e07 nt!MiCleanSection+0&#215;2f7<br />
fffff80001676754 nt!ObfDereferenceObject+0xd4<br />
fffff80001661170 nt!CcDeleteSharedCacheMap+0&#215;1bc<br />
fffff80001699880 nt!CcUninitializeCacheMap+0&#215;2f0<br />
fffff880030ecfa6 picadm!OwCommonCleanup+0&#215;4b6<br />
fffff880030ec840 picadm!FsdCleanup+0&#215;2a8<br />
fffff880030ec994 picadm!OwFsdCleanup+0&#215;38<br />
fffff80001b16750 nt!IovCallDriver+0xa0<br />
fffff800019824bf nt!IopCloseFile+0&#215;11f</p>
<p>But current thread has no sign of this driver : picadm.sys. It is something like this:</p>
<p>2: kd&gt; k<br />
Child-SP          RetAddr           Call Site<br />
fffff880`02378b28 fffff800`017a360e nt!KeBugCheckEx<br />
fffff880`02378b30 fffff800`0178a53e nt!ExDeferredFreePool+0&#215;11eb<br />
fffff880`02378be0 fffff800`01798a0a nt!MiDeleteCachedSubsection+0&#215;10ae<br />
fffff880`02378c90 fffff800`01798b43 nt!MiRemoveUnusedSegments+0&#215;8a<br />
fffff880`02378cc0 fffff800`01910726 nt!MiDereferenceSegmentThread+0&#215;103<br />
fffff880`02378d40 fffff800`0164fae6 nt!PspSystemThreadStartup+0&#215;5a<br />
fffff880`02378d80 00000000`00000000 nt!KiStartSystemThread+0&#215;16</p>
<p>Please suggest!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Crash Dump Analysis &#187; Blog Archive &#187; Insufficient memory, handle leak, wait chain, deadlock, inconsistent dump and overaged system: pattern cooperation</title>
		<link>https://www.dumpanalysis.org/blog/index.php/2007/08/25/crash-dump-analysis-patterns-part-23b/#comment-175801</link>
		<dc:creator>Crash Dump Analysis &#187; Blog Archive &#187; Insufficient memory, handle leak, wait chain, deadlock, inconsistent dump and overaged system: pattern cooperation</dc:creator>
		<pubDate>Fri, 13 Aug 2010 19:13:18 +0000</pubDate>
		<guid>https://www.dumpanalysis.org/blog/index.php/2007/08/25/crash-dump-analysis-patterns-part-23b/#comment-175801</guid>
		<description>[...] However we see that drivers using AAAA and BBBB consumed almost 65Mb and we can search for them as described here. [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] However we see that drivers using AAAA and BBBB consumed almost 65Mb and we can search for them as described here. [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Crash Dump Analysis &#187; Blog Archive &#187; Icons for Memory Dump Analysis Patterns (Part 42)</title>
		<link>https://www.dumpanalysis.org/blog/index.php/2007/08/25/crash-dump-analysis-patterns-part-23b/#comment-152816</link>
		<dc:creator>Crash Dump Analysis &#187; Blog Archive &#187; Icons for Memory Dump Analysis Patterns (Part 42)</dc:creator>
		<pubDate>Wed, 19 May 2010 11:44:26 +0000</pubDate>
		<guid>https://www.dumpanalysis.org/blog/index.php/2007/08/25/crash-dump-analysis-patterns-part-23b/#comment-152816</guid>
		<description>[...] we introduce an icon for Double Free (kernel pool) [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] we introduce an icon for Double Free (kernel pool) [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dmitry Vostokov</title>
		<link>https://www.dumpanalysis.org/blog/index.php/2007/08/25/crash-dump-analysis-patterns-part-23b/#comment-23600</link>
		<dc:creator>Dmitry Vostokov</dc:creator>
		<pubDate>Thu, 17 Apr 2008 10:48:04 +0000</pubDate>
		<guid>https://www.dumpanalysis.org/blog/index.php/2007/08/25/crash-dump-analysis-patterns-part-23b/#comment-23600</guid>
		<description>a4ef7890 size: 88 previous size: 88 (Allocated) NEtd
a4ef7918 is not a valid large pool allocation, checking large session pool…

a4ef7890+88 = a4ef7918

I would try to see its contents, perhaps dds and dps would point to some symbolic data. Also search for this address in kernel space might point to some other blocks as well.

If you suspect some driver you might want to enable driver verifier special pool</description>
		<content:encoded><![CDATA[<p>a4ef7890 size: 88 previous size: 88 (Allocated) NEtd<br />
a4ef7918 is not a valid large pool allocation, checking large session pool…</p>
<p>a4ef7890+88 = a4ef7918</p>
<p>I would try to see its contents, perhaps dds and dps would point to some symbolic data. Also search for this address in kernel space might point to some other blocks as well.</p>
<p>If you suspect some driver you might want to enable driver verifier special pool</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bill</title>
		<link>https://www.dumpanalysis.org/blog/index.php/2007/08/25/crash-dump-analysis-patterns-part-23b/#comment-22893</link>
		<dc:creator>Bill</dc:creator>
		<pubDate>Wed, 09 Apr 2008 15:42:51 +0000</pubDate>
		<guid>https://www.dumpanalysis.org/blog/index.php/2007/08/25/crash-dump-analysis-patterns-part-23b/#comment-22893</guid>
		<description>What happens if the block being deallocated can't be analyzed:

4: kd&#62; !pool a4ef7920
Pool page a4ef7920 region is Nonpaged pool
 a4ef7000 size:   e0 previous size:    0  (Allocated)  MmCi
 a4ef70e0 size:   68 previous size:   e0  (Allocated)  TCIZ
 a4ef7148 size:   e0 previous size:   68  (Allocated)  MmCi
 a4ef7228 size:   98 previous size:   e0  (Allocated)  File (Protected)
 a4ef72c0 size:   98 previous size:   98  (Allocated)  File (Protected)
 a4ef7358 size:  100 previous size:   98  (Allocated)  MmCi
 a4ef7458 size:   28 previous size:  100  (Allocated)  NtFs
 a4ef7480 size:   40 previous size:   28  (Allocated)  Ntfr
 a4ef74c0 size:   98 previous size:   40  (Allocated)  File (Protected)
 a4ef7558 size:    8 previous size:   98  (Free)       CcPL
 a4ef7560 size:   40 previous size:    8  (Allocated)  SevE
 a4ef75a0 size:   40 previous size:   40  (Allocated)  Ntfr
 a4ef75e0 size:   10 previous size:   40  (Free)       TCI1
 a4ef75f0 size:  180 previous size:   10  (Allocated)  MmCi
 a4ef7770 size:   98 previous size:  180  (Allocated)  File (Protected)
 a4ef7808 size:   88 previous size:   98  (Allocated)  Adap (Protected)
 a4ef7890 size:   88 previous size:   88  (Allocated)  NEtd
a4ef7918 is not a valid large pool allocation, checking large session pool...
a4ef7918 is freed (or corrupt) pool
Bad allocation size @a4ef7918, zero is invalid

***
*** An error (or corruption) in the pool was detected;
*** Attempting to diagnose the problem.
***
*** Use !poolval a4ef7000 for more details.
***

Pool page [ a4ef7000 ] is __inVALID.

Analyzing linked list...
[ a4ef7890 --&#62; a4ef7a10 (size = 0x180 bytes)]: Corrupt region


Scanning for single bit errors...

None found</description>
		<content:encoded><![CDATA[<p>What happens if the block being deallocated can&#8217;t be analyzed:</p>
<p>4: kd&gt; !pool a4ef7920<br />
Pool page a4ef7920 region is Nonpaged pool<br />
 a4ef7000 size:   e0 previous size:    0  (Allocated)  MmCi<br />
 a4ef70e0 size:   68 previous size:   e0  (Allocated)  TCIZ<br />
 a4ef7148 size:   e0 previous size:   68  (Allocated)  MmCi<br />
 a4ef7228 size:   98 previous size:   e0  (Allocated)  File (Protected)<br />
 a4ef72c0 size:   98 previous size:   98  (Allocated)  File (Protected)<br />
 a4ef7358 size:  100 previous size:   98  (Allocated)  MmCi<br />
 a4ef7458 size:   28 previous size:  100  (Allocated)  NtFs<br />
 a4ef7480 size:   40 previous size:   28  (Allocated)  Ntfr<br />
 a4ef74c0 size:   98 previous size:   40  (Allocated)  File (Protected)<br />
 a4ef7558 size:    8 previous size:   98  (Free)       CcPL<br />
 a4ef7560 size:   40 previous size:    8  (Allocated)  SevE<br />
 a4ef75a0 size:   40 previous size:   40  (Allocated)  Ntfr<br />
 a4ef75e0 size:   10 previous size:   40  (Free)       TCI1<br />
 a4ef75f0 size:  180 previous size:   10  (Allocated)  MmCi<br />
 a4ef7770 size:   98 previous size:  180  (Allocated)  File (Protected)<br />
 a4ef7808 size:   88 previous size:   98  (Allocated)  Adap (Protected)<br />
 a4ef7890 size:   88 previous size:   88  (Allocated)  NEtd<br />
a4ef7918 is not a valid large pool allocation, checking large session pool&#8230;<br />
a4ef7918 is freed (or corrupt) pool<br />
Bad allocation size @a4ef7918, zero is invalid</p>
<p>***<br />
*** An error (or corruption) in the pool was detected;<br />
*** Attempting to diagnose the problem.<br />
***<br />
*** Use !poolval a4ef7000 for more details.<br />
***</p>
<p>Pool page [ a4ef7000 ] is __inVALID.</p>
<p>Analyzing linked list&#8230;<br />
[ a4ef7890 &#8211;&gt; a4ef7a10 (size = 0&#215;180 bytes)]: Corrupt region</p>
<p>Scanning for single bit errors&#8230;</p>
<p>None found</p>
]]></content:encoded>
	</item>
</channel>
</rss>
