I am having problems servicing IRP_MJ_DIRECTORY_CONTROL /
IRP_MN_QUERY_DIRECTORY in my FSD. The problem is in returning the
information on the first call to query the directory, with Irp->MdlAddress
== NULL. If I use Irp->UserBuffer to return the information, DFS faults
with bugcheck 0x82, copied below:
*** Fatal System Error: 0x00000082
(0xFCD0C5E6,0x8041F54B,0x00000000,0x00000000)
QueueServerIrp - Routine exitedBreak instruction exception - code 80000003
(first chance)
A fatal system error has occurred.
Debugger entered on first try; Bugcheck callbacks have not been invoked.
A fatal system error has occurred.
r;kb;.bugcheck
eax=00000003 ebx=00000082 ecx=f5e4d460 edx=00000000 esi=fcd0c5e6
edi=f5e4d07c
eip=80452e70 esp=f5e4d038 ebp=f5e4d064 iopl=0 nv up ei pl zr na po
nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000
efl=00000246
ntoskrnl!RtlpBreakWithStatusInstruction:
80452e70 cc int 3
ChildEBP RetAddr Args to Child
f5e4d034 8042bcb9 00000003 f5e4d07c fcd0c5e6
ntoskrnl!RtlpBreakWithStatusInstruction
f5e4d064 8042c068 00000003 fcd07c40 00000000
ntoskrnl!KiBugCheckDebugBreak+0x31
f5e4d3ec fcd0c5c8 00000000 fcd0c5e6 8041f54b ntoskrnl!KeBugCheckEx+0x37b
f5e4d410 fcd0c5e6 fcd0d005 c0000005 f5e4d440 Dfs!DfsBugCheck+0x28
f5e4d414 fcd0d005 c0000005 f5e4d440 8045cc77 Dfs!DfsExceptionFilter+0x1c
f5e4dc0c 8041f54b 8108a260 81088248 81088248
Dfs!DfsFsdFileSystemControl+0x6b
f5e4dc20 804ba5e8 810882dc 00000000 81088248 ntoskrnl!IopfCallDriver+0x35
f5e4dc34 804ac5de 8108a260 81088248 810f2568
ntoskrnl!IopSynchronousServiceTail+0x60
f5e4dd00 804a8b3c 00000040 00000088 00000000
ntoskrnl!IopXxxControlFile+0x5e4
f5e4dd34 80461691 00000040 00000088 00000000 ntoskrnl!NtFsControlFile+0x28
f5e4dd34 77f8bf31 00000040 00000088 00000000 ntoskrnl!KiSystemService+0xc4
0072fce8 77f841f8 001024c0 00000001 00103575 ntdll!NtFsControlFile+0xb
0072fd44 77f841f8 001024c0 002e1880 00000103
ntdll!RtlDosPathNameToNtPathName_U+0x2ee
0072ff98 ffffffff 80430b27 0072ffdc 00103468
ntdll!RtlDosPathNameToNtPathName_U+0x2ee
00000050 00000000 00000000 00000000 00000000 0xffffffff`ffffffff
Bugcheck code 00000082
Arguments fcd0c5e6 8041f54b 00000000 00000000
ntoskrnl!RtlpBreakWithStatusInstruction:
80452e70 cc int 3
Would anyone know what DFS is complaining about? I could not find any
documentation on bugcheck x82.
I should also happily note that this problem doesn’t happen in the Win2K
checked build, but only in the Win2K release build. The Win2K checked
build always generate IRPs with their MdlAddress set.
TIA,
UKO.