mirror of
https://github.com/winfsp/winfsp.git
synced 2025-06-08 04:52:10 -05:00
dll: GetDirInfoByName: eliminate unnecessary marker check
This commit is contained in:
parent
f8a05eae95
commit
55eee2efdd
@ -1122,7 +1122,7 @@ FSP_API NTSTATUS FspFileSystemOpSetVolumeInformation(FSP_FILE_SYSTEM *FileSystem
|
|||||||
}
|
}
|
||||||
|
|
||||||
static NTSTATUS FspFileSystemOpQueryDirectory_GetDirInfoByName(FSP_FILE_SYSTEM *FileSystem,
|
static NTSTATUS FspFileSystemOpQueryDirectory_GetDirInfoByName(FSP_FILE_SYSTEM *FileSystem,
|
||||||
PVOID FileContext, PWSTR FileName, PWSTR Marker, BOOLEAN CaseSensitive,
|
PVOID FileContext, PWSTR FileName,
|
||||||
PVOID Buffer, ULONG Length, PULONG PBytesTransferred)
|
PVOID Buffer, ULONG Length, PULONG PBytesTransferred)
|
||||||
{
|
{
|
||||||
NTSTATUS Result;
|
NTSTATUS Result;
|
||||||
@ -1132,16 +1132,11 @@ static NTSTATUS FspFileSystemOpQueryDirectory_GetDirInfoByName(FSP_FILE_SYSTEM *
|
|||||||
UINT8 B[sizeof(FSP_FSCTL_DIR_INFO) + 255 * sizeof(WCHAR)];
|
UINT8 B[sizeof(FSP_FSCTL_DIR_INFO) + 255 * sizeof(WCHAR)];
|
||||||
} DirInfoBuf;
|
} DirInfoBuf;
|
||||||
FSP_FSCTL_DIR_INFO *DirInfo = &DirInfoBuf.V;
|
FSP_FSCTL_DIR_INFO *DirInfo = &DirInfoBuf.V;
|
||||||
BOOLEAN HasMarker;
|
|
||||||
|
/* The FSD will never send us a Marker that we need to worry about! */
|
||||||
|
|
||||||
memset(DirInfo, 0, sizeof *DirInfo);
|
memset(DirInfo, 0, sizeof *DirInfo);
|
||||||
HasMarker = 0 != Marker &&
|
Result = FileSystem->Interface->GetDirInfoByName(FileSystem, FileContext, FileName, DirInfo);
|
||||||
0 == (CaseSensitive ? invariant_wcscmp : invariant_wcsicmp)(FileName, Marker);
|
|
||||||
|
|
||||||
if (!HasMarker)
|
|
||||||
{
|
|
||||||
Result = FileSystem->Interface->GetDirInfoByName(FileSystem,
|
|
||||||
FileContext, FileName, DirInfo);
|
|
||||||
if (NT_SUCCESS(Result))
|
if (NT_SUCCESS(Result))
|
||||||
{
|
{
|
||||||
if (FspFileSystemAddDirInfo(DirInfo, Buffer, Length, PBytesTransferred))
|
if (FspFileSystemAddDirInfo(DirInfo, Buffer, Length, PBytesTransferred))
|
||||||
@ -1152,12 +1147,6 @@ static NTSTATUS FspFileSystemOpQueryDirectory_GetDirInfoByName(FSP_FILE_SYSTEM *
|
|||||||
Result = STATUS_SUCCESS;
|
Result = STATUS_SUCCESS;
|
||||||
FspFileSystemAddDirInfo(0, Buffer, Length, PBytesTransferred);
|
FspFileSystemAddDirInfo(0, Buffer, Length, PBytesTransferred);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Result = STATUS_SUCCESS;
|
|
||||||
FspFileSystemAddDirInfo(0, Buffer, Length, PBytesTransferred);
|
|
||||||
}
|
|
||||||
|
|
||||||
return Result;
|
return Result;
|
||||||
}
|
}
|
||||||
@ -1177,9 +1166,6 @@ FSP_API NTSTATUS FspFileSystemOpQueryDirectory(FSP_FILE_SYSTEM *FileSystem,
|
|||||||
Result = FspFileSystemOpQueryDirectory_GetDirInfoByName(FileSystem,
|
Result = FspFileSystemOpQueryDirectory_GetDirInfoByName(FileSystem,
|
||||||
(PVOID)ValOfFileContext(Request->Req.QueryDirectory),
|
(PVOID)ValOfFileContext(Request->Req.QueryDirectory),
|
||||||
(PWSTR)(Request->Buffer + Request->Req.QueryDirectory.Pattern.Offset),
|
(PWSTR)(Request->Buffer + Request->Req.QueryDirectory.Pattern.Offset),
|
||||||
0 != Request->Req.QueryDirectory.Marker.Size ?
|
|
||||||
(PWSTR)(Request->Buffer + Request->Req.QueryDirectory.Marker.Offset) : 0,
|
|
||||||
Request->Req.QueryDirectory.CaseSensitive,
|
|
||||||
(PVOID)Request->Req.QueryDirectory.Address,
|
(PVOID)Request->Req.QueryDirectory.Address,
|
||||||
Request->Req.QueryDirectory.Length,
|
Request->Req.QueryDirectory.Length,
|
||||||
&BytesTransferred);
|
&BytesTransferred);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user