tst: ntptfs: WslFeatures

This commit is contained in:
Bill Zissimopoulos
2022-01-21 14:29:42 +00:00
parent 13810e94fc
commit f28902dd7b
3 changed files with 23 additions and 8 deletions

View File

@@ -153,13 +153,6 @@ static NTSTATUS CreateEx(FSP_FILE_SYSTEM *FileSystem,
UINT32 MaximumAccess = IsDirectory ? GrantedAccess : MAXIMUM_ALLOWED;
NTSTATUS Result;
if (ExtraBufferIsReparsePoint)
{
/* no support for WSL */
Result = STATUS_INVALID_PARAMETER;
goto exit;
}
CreateOptions &=
FILE_DIRECTORY_FILE |
FILE_NON_DIRECTORY_FILE |
@@ -198,6 +191,21 @@ static NTSTATUS CreateEx(FSP_FILE_SYSTEM *FileSystem,
if (!NT_SUCCESS(Result))
goto exit;
if (ExtraBufferIsReparsePoint)
{
/* this can happen on a WSL mount */
Result = LfsFsControlFile(
Handle,
FSCTL_SET_REPARSE_POINT,
ExtraBuffer,
(ULONG)ExtraLength,
0,
0,
&ExtraLength);
if (!NT_SUCCESS(Result))
goto exit;
}
Result = LfsGetFileInfo(Handle, Ptfs->RootPrefixLength, FileInfo);
if (!NT_SUCCESS(Result))
goto exit;
@@ -1154,6 +1162,8 @@ NTSTATUS PtfsCreate(
VolumeParams.PassQueryDirectoryPattern = 1;
VolumeParams.FlushAndPurgeOnCleanup = (FsAttributeMask & PtfsFlushAndPurgeOnCleanup) ?
1 : 0;
VolumeParams.WslFeatures = (FsAttributeMask & PtfsWslFeatures) ?
1 : 0;
VolumeParams.AllowOpenInKernelMode = 1;
VolumeParams.RejectIrpPriorToTransact0 = 1;
VolumeParams.UmFileContextIsUserContext2 = 1;