Hi,
I am writing a mini-filter for Vista. The documentation for FltReadFile states that the request will only be passed to lower filters as well as the file system. This seems to be the case for local file systems, but in the case of network file systems I am being re-entered. See the following trace:
nt!DbgBreakPoint
cpdrm!DrmGenericPreop+0x49
fltmgr!FltpPerformPreCallbacks+0x2e5
fltmgr!FltpPassThroughInternal+0x32
fltmgr!FltpPassThrough+0x1a3
fltmgr!FltpDispatch+0xb1
nt!IofCallDriver+0x63
nt!IoPageRead+0x172
nt!MiDispatchFault+0xd18
nt!MmAccessFault+0x10ac
nt!MmCheckCachedPageState+0x801
nt!CcCopyRead+0x435
rdbss!RxCommonRead+0xadd
rdbss!RxFsdCommonDispatch+0x59c
rdbss!RxFsdDispatch+0x19f
mrxsmb!MRxSmbFsdDispatch+0x99
nt!IofCallDriver+0x63
mup!MupiCallUncProvider+0x10d
mup!MupStateMachine+0x9b
mup!MupFsdIrpPassThrough+0xc8
nt!IofCallDriver+0x63
fltmgr!FltpLegacyProcessingAfterPreCallbacksCompleted+0x251
fltmgr!FltPerformSynchronousIo+0xb9
fltmgr!FltReadFile+0x2ed
cpdrm!UtSyncReadFile+0x95
cpdrm!DrmpSyncReadNextSector+0x5b
cpdrm!DrmcIsProtectedFile+0x4b
cpdrm!DrmPostCreate+0x19b
fltmgr!FltpPerformPostCallbacks+0x1f1
fltmgr!FltpProcessIoCompletion+0x10
fltmgr!FltpPassThroughCompletion+0x94
fltmgr!FltpLegacyProcessingAfterPreCallbacksCompleted+0x2e1
fltmgr!FltpCreate+0x2a1
nt!IofCallDriver+0x63
nt!IopParseDevice+0xf61
nt!ObpLookupObjectName+0x5a8
nt!ObOpenObjectByName+0x13c
nt!IopCreateFile+0x63b
nt!NtCreateFile+0x34
nt!KiFastCallEntry+0x12a
ntdll!KiFastSystemCallRet
ntdll!ZwCreateFile+0xc
kernel32!CreateFileW+0x379
notepad!NPInit+0x49f
notepad!WinMain+0x56
notepad!_initterm_e+0x1a1
kernel32!BaseThreadInitThunk+0xe
ntdll!__RtlUserThreadStart+0x23
ntdll!_RtlUserThreadStart+0x1b
Is this expected (so I should plan for it) or am I doing something else wrong.
Thanks,
Matt