PreRead: how to read a different file during Paging I/O

Thanks again!!

I provide a full FLT_CALLBACK_DATA structure to FltPerformSynchronousIo, so I can easily set "CallbackData->Iopb->IrpFlags = IRP_PAGING_IO". However, I can't really tell if the flag reaches the file system driver.

Though, it seems likely since FltReadFile has the documented flag "FLTFL_IO_OPERATION_PAGING". So I would assume that setting "IrpFlags = IRP_PAGING_IO" for FltPerformSynchronousIo will probably also work.

Not sure I understand the "MDL for Irp" thing you mentioned? FltReadFile doesn't allow me to specify an MDL, it instead wants to have a direct system buffer pointer. For FltPerformSynchronousIo, I'm currently setting "CallbackData->Iopb->Parameters.Read.ReadBuffer = SomeSystemBuffer", to make it similar to my FltReadFile call. Do you think using a direct system buffer pointer instead of an MDL could be problematic?