Hi, all
I am developing a shadow filesystem using minifilter dirver, and we use reparse mechanism to redirect the file to new path in pre-create.
Here Is how it works:
- In pre-create callback ,create new path acoording to old path,use IoReplaceFileObjectName to replace name, and set Data->IoStatus.Status = STATUS_REPARSE; Data->IoStatus.Information = IO_REPARSE; return FLT_PREOP_COMPLETE;
- we will receive a new IRP_MJ_CREATE with the new reparsed path.
The REPARSE works, but now we want to add some extra information from step 1 to step 2. For example, in step 2, we want to know whether the IRP is due to REPARSE.
I do some experiments, and find out that:
- The Data-Iopb-TargetFileObject is same address in step 1 and step 2.
- I try to set the FsContext, FsContext2, CompetionContext in Data-Iopb-TargetFileObject in step 1, but these fileds seem to be reseted to NULL in step 2.
Is this possible? Any suggestion ? Thank you for any help.