Using the Pinning Interface

I am using the pinning interface in my fs driver but I am having a
problem. I don’t know if it is by design or there is a solution to the
problem. When I use CcPinRead and then CcUnpinData before completing an
Irp it works. When I call CcUnpinData from another Irp I get an
assertion failed (attached). If it is not possible to use the Bcb in
another context, what is the best way to store information across
multiple Irp’s?

Thanks in advance

John.

*** Assertion failed: OwnerEntry != NULL
*** Source File: w:\nt\private\ntos\ex\up..\resource.c, line 1511

Break, Ignore, Terminate Process or Terminate Thread (bipt)? b
Execute ‘!cxr f8e3fc14’ to dump context
i386kd: debugger data list address is NULL
Debugger can not load DataBlock
ntoskrnl!DbgBreakPoint:
80165c4c cc int 3
kd> kb
*** WARNING: symbols checksum and timestamp is wrong 0x00080c4e
0x00082dcf for ntdll.dll
*** WARNING: symbols checksum and timestamp is wrong 0x000604be
0x0006c5de for kernel32.dll
ChildEBP RetAddr Args to Child
f8e3fc08 80169d42 806953c0 204c5152 0a30203d ntoskrnl!DbgBreakPoint
f8e3fce4 8010eb53 8010e90c 8010e8e4 000005e7 ntoskrnl!RtlAssert+0x96
f8e3fd10 80106058 80625140 80695378 8117f1e8
ntoskrnl!ExReleaseResourceLite+0x159
f8e3fd28 8010b6ab 00000000 80625140 8117f2a0
ntoskrnl!CcUnpinFileData+0x1ad
f8e3fd3c f8eed503 80695378 f8e3fd84 f8eedce2 ntoskrnl!CcUnpinData+0x4f
f8e3fd48 f8eedce2 806251f8 80ca5fcc 80625140 Ext2fs!XtBLFreeBlocks+0x5e
f8e3fd84 f8eee4e0 806251f8 809e44c8 80111ce8 Ext2fs!XtUnLockBlock+0xbc
f8e3fda4 f8eeb43c 809e44b0 00154106 001540e4 Ext2fs!XtDirGetEntry+0xb5
f8e3fdc4 f8eebb7f 001540a8 f8e3fde8 809e4410
Ext2fs!XtFSFillInBothDirectoryInfo+0x35
f8e3fdfc f8ee8f75 803a6630 0000000c 8117f2a0
Ext2fs!XtFSDirectoryControl+0x2a1
f8e3fe14 f8ee8860 803a6630 80625140 8117f2a0
Ext2fs!XtFSDispatchRequest+0xf5
f8e3fe50 8011c9a9 80625140 8117f1e8 80ca7aac
Ext2fs!XtFSBuildRequest+0xa0
f8e3fe74 801c18df f8e3fef8 0299fc58 801bb7f2 ntoskrnl!IofCallDriver+0x68

f8e3fe90 801bb885 80625140 8117f1e8 80ca70c8
ntoskrnl!IopSynchronousServiceTail+0x9f
f8e3fec4 8017917a 000000e0 00000000 00000000
ntoskrnl!NtQueryDirectoryFile+0x93
f8e3fec4 6720b173 000000e0 00000000 00000000
ntoskrnl!KiSystemService+0x10a
0299fc24 77f10978 000000e0 00000000 00000000
ntdll!NtQueryDirectoryFile+0xb
0299fca0 668355af 00149b10 00153e34 001471e0 kernel32!FindNextFileW+0xb3

0299fed0 66834f70 001471e0 00153c20 00000001
shell32!CFSFolder_EnumCallBack+0x11e
0299fef4 668618d6 001471e0 00000001 0299ff58 shell32!CDefEnum_Next+0x1a


Information Technology Innovation Group
Swinburne University. Melbourne, Australia
http://uranus.it.swin.edu.au/~jn