mirror of
https://github.com/winfsp/winfsp.git
synced 2025-04-22 16:33:02 -05:00
inc: fsctl: FSP_FSCTL_TRANSACT_REQ QueryDirectory: CaseSensitive
This commit is contained in:
parent
945509ef93
commit
0b61c48cd6
@ -173,7 +173,7 @@ typedef struct
|
||||
UINT64 LastWriteTime;
|
||||
UINT64 ChangeTime;
|
||||
UINT64 IndexNumber;
|
||||
UINT32 HardLinks; /* currently unused: set to 0 */
|
||||
UINT32 HardLinks; /* unimplemented: set to 0 */
|
||||
} FSP_FSCTL_FILE_INFO;
|
||||
typedef struct
|
||||
{
|
||||
@ -334,6 +334,7 @@ typedef struct
|
||||
UINT64 Offset;
|
||||
UINT32 Length;
|
||||
FSP_FSCTL_TRANSACT_BUF Pattern;
|
||||
UINT32 CaseSensitive:1; /* FileName comparisons should be case-sensitive */
|
||||
} QueryDirectory;
|
||||
struct
|
||||
{
|
||||
|
@ -1002,7 +1002,9 @@ static inline
|
||||
BOOLEAN FspFileSystemIsOperationCaseSensitive(VOID)
|
||||
{
|
||||
FSP_FSCTL_TRANSACT_REQ *Request = FspFileSystemGetOperationContext()->Request;
|
||||
return FspFsctlTransactCreateKind == Request->Kind && Request->Req.Create.CaseSensitive;
|
||||
return
|
||||
FspFsctlTransactCreateKind == Request->Kind && Request->Req.Create.CaseSensitive ||
|
||||
FspFsctlTransactQueryDirectoryKind == Request->Kind && Request->Req.QueryDirectory.CaseSensitive;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -184,10 +184,9 @@ static NTSTATUS FspFsvolCreateNoLock(
|
||||
ULONG Flags = IrpSp->Flags;
|
||||
KPROCESSOR_MODE RequestorMode =
|
||||
FlagOn(Flags, SL_FORCE_ACCESS_CHECK) ? UserMode : Irp->RequestorMode;
|
||||
BOOLEAN CaseSensitiveRequested =
|
||||
BooleanFlagOn(Flags, SL_CASE_SENSITIVE);
|
||||
BOOLEAN CaseSensitive =
|
||||
CaseSensitiveRequested || FsvolDeviceExtension->VolumeParams.CaseSensitiveSearch;
|
||||
//BooleanFlagOn(Flags, SL_CASE_SENSITIVE) ||
|
||||
!!FsvolDeviceExtension->VolumeParams.CaseSensitiveSearch;
|
||||
BOOLEAN HasTraversePrivilege =
|
||||
BooleanFlagOn(AccessState->Flags, TOKEN_HAS_TRAVERSE_PRIVILEGE);
|
||||
BOOLEAN HasBackupPrivilege =
|
||||
@ -501,7 +500,7 @@ static NTSTATUS FspFsvolCreateNoLock(
|
||||
Request->Req.Create.HasBackupPrivilege = HasBackupPrivilege;
|
||||
Request->Req.Create.HasRestorePrivilege = HasRestorePrivilege;
|
||||
Request->Req.Create.OpenTargetDirectory = BooleanFlagOn(Flags, SL_OPEN_TARGET_DIRECTORY);
|
||||
Request->Req.Create.CaseSensitive = CaseSensitiveRequested;
|
||||
Request->Req.Create.CaseSensitive = CaseSensitive;
|
||||
Request->Req.Create.NamedStream = MainFileName.Length;
|
||||
|
||||
ASSERT(
|
||||
|
@ -584,6 +584,7 @@ static NTSTATUS FspFsvolQueryDirectoryRetry(
|
||||
Request->Req.QueryDirectory.UserContext2 = FileDesc->UserContext2;
|
||||
Request->Req.QueryDirectory.Offset = FileDesc->DirectoryOffset;
|
||||
Request->Req.QueryDirectory.Length = SystemBufferLength;
|
||||
Request->Req.QueryDirectory.CaseSensitive = FileDesc->CaseSensitive;
|
||||
|
||||
if (FspFileDescDirectoryPatternMatchAll != FileDesc->DirectoryPattern.Buffer)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user