Windows System Software -- Consulting, Training, Development -- Unique Expertise, Guaranteed Results

Before Posting...
Please check out the Community Guidelines in the Announcements and Administration Category.

Can I add some extra information when REPARSE

wangguanwangguan Member Posts: 2
edited April 12 in NTFSD

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:
1. 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;
2. 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:
1. The Data-Iopb-TargetFileObject is same address in step 1 and step 2.
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.

Comments

  • rod_widdowsonrod_widdowson Member - All Emails Posts: 1,024

    You want to add an ECP to your callback data. This may or may not involve adding an ECP_LIST first (you add the ECP to the ECP_LIST but you may need to create and add the ECP_LIST)

    ECPs are identified by GUID, but they survive repasse. You’ll need to consult the docs for the precise APIs, but avoid the Flt ones if you are sharing ECPs between filters.

  • wangguanwangguan Member Posts: 2

    Thanks , it works, for others who reach this page by google, You can use the FltGetEcpListFromCallbackData family function. "but avoid the Flt ones if you are sharing ECPs between filters." Microsoft gives a good sample, https://github.com/Microsoft/Windows-driver-samples/blob/master/filesys/miniFilter/avscan/filter/csvfs.c

Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Upcoming OSR Seminars
Developing Minifilters 29 July 2019 OSR Seminar Space
Writing WDF Drivers 23 Sept 2019 OSR Seminar Space
Kernel Debugging 21 Oct 2019 OSR Seminar Space
Internals & Software Drivers 18 Nov 2019 Dulles, VA