From 1ac172d2f87fdcad30b7085ce9c8ca8afcc70973 Mon Sep 17 00:00:00 2001 From: Bill Zissimopoulos Date: Tue, 26 Sep 2017 11:51:49 -0700 Subject: [PATCH] inc,sys: PassQueryDirectoryFileName --- inc/winfsp/fsctl.h | 3 ++- src/sys/dirctl.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/inc/winfsp/fsctl.h b/inc/winfsp/fsctl.h index 4cf17541..da6bd84a 100644 --- a/inc/winfsp/fsctl.h +++ b/inc/winfsp/fsctl.h @@ -152,7 +152,8 @@ typedef struct UINT32 PostCleanupWhenModifiedOnly:1; /* post Cleanup when a file was modified/deleted */ UINT32 PassQueryDirectoryPattern:1; /* pass Pattern during QueryDirectory operations */ UINT32 AlwaysUseDoubleBuffering:1; - UINT32 KmReservedFlags:3; + UINT32 PassQueryDirectoryFileName:1; /* pass FileName during QueryDirectory (GetDirInfoByName) */ + UINT32 KmReservedFlags:2; /* user-mode flags */ UINT32 UmFileContextIsUserContext2:1; /* user mode: FileContext parameter is UserContext2 */ UINT32 UmFileContextIsFullContext:1; /* user mode: FileContext parameter is FullContext */ diff --git a/src/sys/dirctl.c b/src/sys/dirctl.c index 3d4afb92..7272ba51 100644 --- a/src/sys/dirctl.c +++ b/src/sys/dirctl.c @@ -574,7 +574,8 @@ static NTSTATUS FspFsvolQueryDirectoryRetry( PassQueryDirectoryPattern = TRUE; PatternIsFileName = !FsRtlDoesNameContainWildCards(&FileDesc->DirectoryPattern); } - else if (!FsRtlDoesNameContainWildCards(&FileDesc->DirectoryPattern)) + else if (FsvolDeviceExtension->VolumeParams.PassQueryDirectoryFileName && + !FsRtlDoesNameContainWildCards(&FileDesc->DirectoryPattern)) { PassQueryDirectoryPattern = TRUE; PatternIsFileName = TRUE;