Debugging NTFS bugcheck

Every once in a while, I’ll get a bugcheck; typically when compiling
or doing something disk intensive, which I’m pretty sure isn’t actually
something I’m causing on my own. On occasion, I’ve submitted this
through the automated windows crash system, but all it tells me is that
“a device driver” has a bug – gee, thanks, couldn’t have figured that
on my own :slight_smile:

OK, so I don’t even know WHICH driver – it really looks like a bug
in the NT file system handling, but if that were the case, I probably
wouldn’t be alone in getting this. Does anyone have any clues about how
to debug this problem with this particular machine? It’s always pretty
consistent in how it actually fails, which is the only thing that makes
me not entirely despair about the situation… (I can’t repro it on
demand, of course).

Cheers,

/ h+

Windows XP Kernel Version 2600 (Service Pack 1) MP (2 procs) Free x86
compatible
Product: WinNt, suite: TerminalServer SingleUserTS Personal
Built by: 2600.xpsp2.040919-1003
Kernel base = 0x804d4000 PsLoadedModuleList = 0x8054c150

BAD_POOL_CALLER (c2)
The current thread is making a bad pool request. Typically this is at a bad
IRQL level or double freeing the same allocation, etc.
Arguments:
Arg1: 00000007, Attempt to free pool which was already freed
Arg2: 00000cd4, (reserved)
Arg3: 00040023, Memory contents of the pool block
Arg4: 8565f120, Pointer to pool header

Debugging Details:

BUGCHECK_STR: 0xc2_7

DEFAULT_BUCKET_ID: DRIVER_FAULT

LAST_CONTROL_TRANSFER: from 8053a50d to 804f573b

STACK_TEXT:
eec89a08 8053a50d 000000c2 00000007 00000cd4 nt!KeBugCheckEx+0x19
eec89a50 8053a8d7 8565f120 00000000 f747342c nt!ExFreePoolWithTag+0x23b
eec89a5c f747342c 8565f120 f74a39c0 f748ffe0 nt!ExFreePool+0xb
eec89a64 f74a39c0 f748ffe0 8565f120 e358faa0
Ntfs!ExFreeToPagedLookasideList+0x1b
eec89a84 f74a342a 85609b90 eec80705 e358fad0 Ntfs!NtfsDeleteScb+0x18f
eec89a9c f7473355 85609b90 e358fb68 00000000 Ntfs!NtfsRemoveScb+0x86
eec89ab8 f7498cb8 85609b90 e358faa0 00000000
Ntfs!NtfsPrepareFcbForRemoval+0x50
eec89b00 f7472f02 85609b90 e358fb68 e358fd00
Ntfs!NtfsTeardownStructures+0x5d
eec89b2c f74938a7 85609b90 0058fb68 e358fd00
Ntfs!NtfsDecrementCloseCounts+0x9c
eec89bb4 f7493715 85609b90 e358fb68 e358faa0 Ntfs!NtfsCommonClose+0x37a
eec89c54 804eb605 86f72020 855f0830 86f4fa08 Ntfs!NtfsFsdClose+0x1f3
eec89c64 f751042d 804eb605 86ee2a08 855f0830 nt!IopfCallDriver+0x31
eec89c68 804eb605 86ee2a08 855f0830 855f0830 sr!SrPassThrough+0x2f
eec89c78 8056a2df 8560c3e0 00000000 00000000 nt!IopfCallDriver+0x31
eec89cb0 8059f649 0060c3f8 00000000 8560c3e0 nt!IopDeleteFile+0x151
eec89ccc 80519bf5 8560c3f8 00000000 00000f90 nt!ObpRemoveObjectRoutine+0xdd
eec89ce8 805a0423 85678270 e370a590 85677020 nt!ObfDereferenceObject+0x4b
eec89d00 805a04b1 e370a590 8560c3f8 00000f90
nt!ObpCloseHandleTableEntry+0x153
eec89d48 805a05d7 00000f90 00000001 00000000 nt!ObpCloseHandle+0x85
eec89d58 80531814 00000f90 00000000 86fcca08 nt!NtClose+0x19
eec89d58 7ffe0304 00000f90 00000000 86fcca08 nt!KiSystemService+0xc9
0012ebf0 00000000 00000000 00000000 00000000
SharedUserData!SystemCallStub+0x4

FOLLOWUP_IP:
sr!SrPassThrough+2f
f751042d c20800 ret 0x8

FOLLOWUP_NAME: MachineOwner

SYMBOL_NAME: sr!SrPassThrough+2f

MODULE_NAME: sr

IMAGE_NAME: sr.sys

DEBUG_FLR_IMAGE_TIMESTAMP: 3d6dd8b4

STACK_COMMAND: kb

BUCKET_ID: 0xc2_7_sr!SrPassThrough+2f

Followup: MachineOwner