mirror of
https://github.com/winfsp/winfsp.git
synced 2025-04-22 08:23:05 -05:00
inc: fsctl: PassQueryDirectoryPattern
This commit is contained in:
parent
de5ef0c81d
commit
63c23f382b
@ -147,7 +147,8 @@ typedef struct
|
||||
UINT32 ReadOnlyVolume:1;
|
||||
/* kernel-mode flags */
|
||||
UINT32 PostCleanupWhenModifiedOnly:1; /* post Cleanup when a file was modified/deleted */
|
||||
UINT32 KmReservedFlags:5;
|
||||
UINT32 PassQueryDirectoryPattern:1; /* pass Pattern during QueryDirectory operations */
|
||||
UINT32 KmReservedFlags:4;
|
||||
/* user-mode flags */
|
||||
UINT32 UmFileContextIsUserContext2:1; /* user mode: FileContext parameter is UserContext2 */
|
||||
UINT32 UmFileContextIsFullContext:1; /* user mode: FileContext parameter is FullContext */
|
||||
|
@ -565,7 +565,8 @@ static NTSTATUS FspFsvolQueryDirectoryRetry(
|
||||
|
||||
/* create request */
|
||||
Result = FspIopCreateRequestEx(Irp, 0,
|
||||
(FspFileDescDirectoryPatternMatchAll != FileDesc->DirectoryPattern.Buffer ?
|
||||
(FsvolDeviceExtension->VolumeParams.PassQueryDirectoryPattern &&
|
||||
FspFileDescDirectoryPatternMatchAll != FileDesc->DirectoryPattern.Buffer ?
|
||||
FileDesc->DirectoryPattern.Length + sizeof(WCHAR) : 0) +
|
||||
(FsvolDeviceExtension->VolumeParams.MaxComponentLength + 1) * sizeof(WCHAR),
|
||||
FspFsvolQueryDirectoryRequestFini, &Request);
|
||||
@ -581,7 +582,8 @@ static NTSTATUS FspFsvolQueryDirectoryRetry(
|
||||
Request->Req.QueryDirectory.Length = SystemBufferLength;
|
||||
Request->Req.QueryDirectory.CaseSensitive = FileDesc->CaseSensitive;
|
||||
|
||||
if (FspFileDescDirectoryPatternMatchAll != FileDesc->DirectoryPattern.Buffer)
|
||||
if (FsvolDeviceExtension->VolumeParams.PassQueryDirectoryPattern &&
|
||||
FspFileDescDirectoryPatternMatchAll != FileDesc->DirectoryPattern.Buffer)
|
||||
{
|
||||
Request->Req.QueryDirectory.Pattern.Offset =
|
||||
Request->FileName.Size;
|
||||
@ -925,7 +927,8 @@ NTSTATUS FspFsvolDirectoryControlComplete(
|
||||
FSP_RETURN();
|
||||
}
|
||||
|
||||
if (0 == Request->Req.QueryDirectory.Marker.Size &&
|
||||
if (0 == Request->Req.QueryDirectory.Pattern.Size &&
|
||||
0 == Request->Req.QueryDirectory.Marker.Size &&
|
||||
FspFileNodeTrySetDirInfo(FileNode,
|
||||
Irp->AssociatedIrp.SystemBuffer,
|
||||
(ULONG)Response->IoStatus.Information,
|
||||
|
Loading…
x
Reference in New Issue
Block a user