Re[2]: Re[2]: Crash on CcWriteBehindInternal

Does your check to FltIsIoRedirectionAllowedForOperation ever return a
FALSE in your processing? Also, why do you call FltPerformSynchronousIo?
I would just update the targetFO and Instance, mark the CBD dirty and
pass it along. Indicate you want a completion callback if there is
anything you need to do on that end such as update the FO->CBO in the
SFO.

Pete


Kernel Drivers
Windows File System and Device Driver Consulting
www.KernelDrivers.com http:</http:>
866.263.9295

------ Original Message ------
From: xxxxx@mauroleggieri.com.ar
To: “Windows File Systems Devs Interest List”
Sent: 2/3/2016 2:59:13 PM
Subject: RE:[ntfsd] Re[2]: Crash on CcWriteBehindInternal

>In the pre read/write operations registered with FltRegisterFilter, I
>switch TargetFileObject and TargetInstance (also I call
>FltIsIoRedirectionAllowedForOperation and FltPerformSynchronousIo
>depending if the switch is allowed).
>
>But if there exists a separate callback for cached reads and writes, I
>couldn’t figure out who they are.
>
>
>—
>NTFSD is sponsored by OSR
>
>
>MONTHLY seminars on crash dump analysis, WDF, Windows internals and
>software drivers!
>Details at http:
>
>To unsubscribe, visit the List Server section of OSR Online at
>http:</http:></http:>

I’m redirecting one folder to a different volume so I obtain the Instace related to the target volume too.

I readed somewhere I should call FltIsIoRedirectionAllowedForOperation and FltAdjustDeviceStackSizeForIoRedirection (based on the result) to check if I can change pointers directly.

On Win7 FltIsIoRedirectionAllowedForOperation always returned TRUE but on Win10 sometimes I get a STATUS_NOT_SUPPORTED so I end calling FltAllocateCallbackDataEx/FltPerformSynchronousIo copying the original parameters.

Regards.