sys: RejectIrpPriorToTransact0 is always 1

This commit is contained in:
Bill Zissimopoulos 2022-06-29 15:08:34 +01:00
parent e9143a73a6
commit f1cfe758ec
3 changed files with 9 additions and 1 deletions

View File

@ -228,7 +228,7 @@ enum
UINT32 CasePreservedExtendedAttributes:1; /* preserve case of EA (default is UPPERCASE) */\ UINT32 CasePreservedExtendedAttributes:1; /* preserve case of EA (default is UPPERCASE) */\
UINT32 WslFeatures:1; /* support features required for WSLinux */\ UINT32 WslFeatures:1; /* support features required for WSLinux */\
UINT32 DirectoryMarkerAsNextOffset:1; /* directory marker is next offset instead of last name */\ UINT32 DirectoryMarkerAsNextOffset:1; /* directory marker is next offset instead of last name */\
UINT32 RejectIrpPriorToTransact0:1; /* reject IRP's prior to FspFsctlTransact with 0 buffers */\ UINT32 RejectIrpPriorToTransact0:1; /* DEPRECATED: reject IRP's prior to FspFsctlTransact0 */\
UINT32 SupportsPosixUnlinkRename:1; /* file system supports POSIX-style unlink and rename */\ UINT32 SupportsPosixUnlinkRename:1; /* file system supports POSIX-style unlink and rename */\
UINT32 PostDispositionWhenNecessaryOnly:1; /* post Disposition for dirs or READONLY attr check */\ UINT32 PostDispositionWhenNecessaryOnly:1; /* post Disposition for dirs or READONLY attr check */\
UINT32 KmReservedFlags:1;\ UINT32 KmReservedFlags:1;\

View File

@ -249,6 +249,11 @@ static NTSTATUS FspVolumeCreateNoLock(
VolumeParams.AlwaysUseDoubleBuffering = 1; VolumeParams.AlwaysUseDoubleBuffering = 1;
#endif #endif
/*
* Hardcode the RejectIrpPriorToTransact0 = 1 setting.
*/
VolumeParams.RejectIrpPriorToTransact0 = 1;
/* load any fsext provider */ /* load any fsext provider */
if (0 != VolumeParams.FsextControlCode) if (0 != VolumeParams.FsextControlCode)
{ {

View File

@ -67,6 +67,9 @@ void *memfs_start_ex(ULONG Flags, ULONG FileInfoTimeout)
Result = MemfsStart(Memfs); Result = MemfsStart(Memfs);
ASSERT(NT_SUCCESS(Result)); ASSERT(NT_SUCCESS(Result));
Result = FspFsctlTransact(MemfsFileSystem(Memfs)->VolumeHandle, 0, 0, 0, 0, FALSE);
ASSERT(NT_SUCCESS(Result));
memfs_running = 1; memfs_running = 1;
memfs_handle = MemfsFileSystem(Memfs)->VolumeHandle; memfs_handle = MemfsFileSystem(Memfs)->VolumeHandle;