Imagine that a program call deletefile(x.txt) and in my driver I want to make a copy of the file and then delete the file "x.txt".
Setting the
IoStatus member of the FLT_CALLBACK_DATA structure to success and returning
FLT_PREOP_COMPLETE from your IRP_MJ_SET_INFORMATION minifilter callback returns control to the program calling
DeleteFile by saying "operation completed successfully" (well, this is imprecise, since the callback is triggered on behalf of NtSetInformationFile but that probably does not matter in your case).
The purpose of questioning in which property of the FLT_CALLBACK_DATA pointer I find the path to the file, is to try a status_reparse
You may use FltGetFileNameInformation to obtain the file name (including the full path). All you need is provided to your minifilter callback. But keep in mind, that the routine may actually send a query-name request to the target file (this probably is not a problem in your case but may be unpleasant in some others).