summaryrefslogtreecommitdiff
path: root/filesys/miniFilter/simrep/simrep.c
diff options
context:
space:
mode:
authorkarlf <[email protected]>2016-08-11 13:28:13 -0700
committerkarlf <[email protected]>2016-08-11 13:28:13 -0700
commit96eb96dfb613e4c745db6bd1f53a92fe7e2290fc (patch)
treead5f3ede5cbcd6b598677ce41bcf8318471bdd92 /filesys/miniFilter/simrep/simrep.c
parent687b274aa38fd05c8c26e3068932121876d7f745 (diff)
Updated for "Windows 10 Anniversary Update" (Version 1607)
Diffstat (limited to 'filesys/miniFilter/simrep/simrep.c')
-rw-r--r--filesys/miniFilter/simrep/simrep.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/filesys/miniFilter/simrep/simrep.c b/filesys/miniFilter/simrep/simrep.c
index 4daf17ca..3db3f15d 100644
--- a/filesys/miniFilter/simrep/simrep.c
+++ b/filesys/miniFilter/simrep/simrep.c
@@ -1730,7 +1730,6 @@ Return Value:
UNICODE_STRING newFileName;
struct {
- BOOLEAN ReplaceIfExists;
HANDLE RootDirectory;
ULONG FileNameLength;
PWSTR FileName;
@@ -1749,6 +1748,7 @@ Return Value:
switch (fileInfoClass) {
case FileRenameInformation:
+ case FileRenameInformationEx:
//
// Note: We should never see a rename of the mapping path \x\y itself
@@ -1759,7 +1759,12 @@ Return Value:
renameInfo = Cbd->Iopb->Parameters.SetFileInformation.InfoBuffer;
- setInfo.ReplaceIfExists = renameInfo->ReplaceIfExists;
+ //
+ // Accessing ReplaceIfExists -
+ // Using FileRenameInformation - renameInfo->ReplaceIfExists
+ // Using FileRenameInformationEx - FlagOn( renameInfo->Flags, FILE_RENAME_REPLACE_IF_EXISTS )
+ //
+
setInfo.RootDirectory = renameInfo->RootDirectory;
setInfo.FileNameLength = renameInfo->FileNameLength;
setInfo.FileName = renameInfo->FileName;
@@ -1770,7 +1775,8 @@ Return Value:
linkInfo = Cbd->Iopb->Parameters.SetFileInformation.InfoBuffer;
- setInfo.ReplaceIfExists = linkInfo->ReplaceIfExists;
+ // Accessing ReplaceIfExists - linkInfo->ReplaceIfExists
+
setInfo.RootDirectory = linkInfo->RootDirectory;
setInfo.FileNameLength = linkInfo->FileNameLength;
setInfo.FileName = linkInfo->FileName;
@@ -1815,6 +1821,7 @@ Return Value:
case FileIdFullDirectoryInformation: // 38
case FileValidDataLengthInformation: // 39
case FileShortNameInformation: // 40
+ case FileDispositionInformationEx: // 64
goto SimRepPreSetInformationCleanup;
@@ -1928,7 +1935,8 @@ Return Value:
// destination from FLT_GET_DESTINATION_FILE_NAME_INFORMATION.
//
- if (fileInfoClass == FileRenameInformation) {
+ if ((fileInfoClass == FileRenameInformation) ||
+ (fileInfoClass == FileRenameInformationEx)) {
bufferLength = FIELD_OFFSET( FILE_RENAME_INFORMATION, FileName ) + newFileName.Length;
@@ -1942,7 +1950,7 @@ Return Value:
newRenameInfo = (PFILE_RENAME_INFORMATION)buffer;
- newRenameInfo->ReplaceIfExists = renameInfo->ReplaceIfExists;
+ newRenameInfo->Flags = renameInfo->Flags;
newRenameInfo->RootDirectory = NULL;
newRenameInfo->FileNameLength = newFileName.Length;