Bill Zissimopoulos
db319bc3c1
sys,dll: mount improvements
...
- sys: FspFsvolFileSystemControl: FSCTL_IS_VOLUME_MOUNTED
- dll: mount: Transact0, FspMountNotifyShellDriveChange
2023-02-24 12:02:03 +00:00
Bill Zissimopoulos
97c075e744
sys: FspFsvolQueryDirectoryCopy: add missing continue
...
A single line change in FspFsvolQueryDirectoryCopy fixes GitHub issue #475 .
This commit also includes a test for detecting duplicate directory entries.
Credit for the investigation and reproduction of this issue goes to GitHub
user @hach-que.
2023-02-16 17:07:59 +00:00
Bill Zissimopoulos
52e6aa97b5
build: sys: pacify hardware center validation
...
Infverif /k no longer likes "undecorated" [DefaultInstall] sections and
instead it wants them "architecture decorated". For example,
[DefaultInstall.ntarm64]. So play along to have our driver signed.
For more information see:
https://learn.microsoft.com/en-us/windows-hardware/drivers/develop/creating-a-primitive-driver
2023-02-01 22:50:35 +00:00
Bill Zissimopoulos
d626fb9563
sys: FspReleaseForModWrite
...
In some rare cases and under load the mapped page writer's TopLevelIrp
may be trashed by some outside component (observed on Windows 10 1909).
For this reason remove an assertion that could trigger in debug builds.
2023-01-09 15:30:42 +00:00
Bill Zissimopoulos
4f5ad93f00
Merge branch 'master' into pvt-sxs
2022-10-04 15:44:49 +01:00
Bill Zissimopoulos
b9ca46694e
sys: FspFileNodeRenameCheck: fix handle oplock break
2022-10-04 15:44:27 +01:00
Bill Zissimopoulos
d1fc5e5d0f
Merge branch 'pvt-vpb2' into pvt-sxs-vpb
2022-10-03 15:10:06 +01:00
Bill Zissimopoulos
7f73192f8d
sys: FspVolumeCreate
...
If we have an fsvrt device, mount it via opening the volume.
This ensures that the fsvrt is mounted by the correct fsvol
device early on and remedies a rare case where NTFS crashes
the system when it attempts to mount our fsvrt.
2022-10-02 20:10:32 +01:00
Bill Zissimopoulos
c4ecd15c0a
Merge branch 'master' into pvt-sxs
2022-10-02 17:49:47 +01:00
Bill Zissimopoulos
d71049225e
sys: FSP_DEVICE_EXTENSION: remove unused SiloContainerId
2022-10-02 17:35:07 +01:00
Bill Zissimopoulos
91d7f3b673
sys: FspSiloInitialize: always initialize FspSiloList and Mutex
2022-10-01 21:08:01 +01:00
Bill Zissimopoulos
4d1594b1cf
sys: silo: ensure FspSiloListMutex in critical region
2022-10-01 14:44:17 +01:00
Bill Zissimopoulos
0eb6912296
sys: FspSiloEnumerate, FspDriverFinalizeDevicesForUnload
2022-10-01 10:47:18 +01:00
Bill Zissimopoulos
c237a55951
Merge branch 'master' into pvt-sxs
2022-09-29 17:00:10 +01:00
Bill Zissimopoulos
a3765d6360
sys: silo: FspSiloPostInitialize
2022-09-27 19:55:08 +01:00
Bill Zissimopoulos
2fc2c237d3
dll: FspFsctlEnumServices
2022-09-10 16:23:14 +01:00
Bill Zissimopoulos
90acd19014
sys: FspDeviceDelete: remove DBG code
...
FspDeviceDelete was recently changed and its DBG code is no longer valid.
2022-09-04 16:58:38 +01:00
Bill Zissimopoulos
9670caa3fe
sys,dll: FSP_FSCTL_UNLOAD
2022-08-18 11:05:45 +01:00
Bill Zissimopoulos
005d3e4fb0
sys: FspUnload, FspSxsIdent
2022-08-05 17:41:12 +01:00
Bill Zissimopoulos
f1cfe758ec
sys: RejectIrpPriorToTransact0 is always 1
2022-06-29 15:08:34 +01:00
Bill Zissimopoulos
a731f0e5d8
sys,dll: MountUseMountmgrFromFSD
2022-06-27 17:28:24 +01:00
Bill Zissimopoulos
26af6c9363
sys: convert suitable ERESOURCE to FAST_MUTEX
2022-06-10 16:20:24 +01:00
Bill Zissimopoulos
2e441534a3
sys: FspFsvolDeviceLockVolumeNotify
2022-06-10 16:20:19 +01:00
Bill Zissimopoulos
66f3620808
sys: FSP_FSVOL_DEVICE_EXTENSION::VolumeDeleteResource
2022-06-10 16:20:13 +01:00
Bill Zissimopoulos
805742f306
sys: FSP_FSVOL_DEVICE_EXTENSION::VolumeDeleteResource
2022-06-10 16:20:08 +01:00
Bill Zissimopoulos
18842682c8
sys: inline FspFsvolDeviceFileRename* and FspFsvolDeviceLockContextTable
2022-06-10 16:19:57 +01:00
Bill Zissimopoulos
a7a526351f
sys: keep extra fsvol device reference
...
Reference an fsvol device at CREATE time and dereference at CLOSE time,
to ensure that fsvol remains around for DeviceIoControl operations done
after CLEANUP.
2022-06-09 14:28:31 +01:00
Bill Zissimopoulos
69257949ac
sys: FspCompareUnicodeString
2022-06-02 13:09:40 +01:00
Bill Zissimopoulos
c7b3312cf6
sys: disable FSP_FILE_NODE_NO_PGIO
2022-05-17 23:44:16 +01:00
Bill Zissimopoulos
c0fa5696d7
sys: FspVolumeFastTransact
2022-05-17 17:25:18 +01:00
Bill Zissimopoulos
43af829d46
sys,dll,inc: FSP_IOCTL_TRANSACT
2022-05-16 21:40:01 +01:00
Bill Zissimopoulos
df4c19c113
sys: FSP_FILE_NODE_NO_PGIO
2022-04-19 15:21:54 +01:00
Bill Zissimopoulos
deaf475861
sys: FSP_ENTER_FIO: handle bogus fast I/O to fsctl device
2022-04-19 14:29:29 +01:00
Bill Zissimopoulos
1a879e3302
inc, src: PostDispositionWhenNecessaryOnly
...
- Rename PostDispositionForDirOnly to PostDispositionWhenNecessaryOnly
- Implement PostDispositionWhenNecessaryOnly across the board
2022-04-02 12:48:35 +01:00
Bill Zissimopoulos
98421fe11b
inc,sys,tst: fsctl: PostDispositionForDirOnly
2022-04-01 20:54:54 +01:00
Bill Zissimopoulos
d816d607f4
sys: FspFsvolDeviceDirInfoCacheItemSizeMax: increase to 64K
2022-03-24 18:10:04 +00:00
Bill Zissimopoulos
20680fa5b5
sys: FastIo: read/write implementation
2022-03-20 20:31:54 +00:00
Bill Zissimopoulos
29251dc2be
sys, dll: convert memory barriers to interlocked operations
2022-01-19 10:55:46 +00:00
Bill Zissimopoulos
04c2f0120c
sys: remove wait group (Wgroup) functionality
2022-01-17 14:30:06 +00:00
Bill Zissimopoulos
228f1d658d
sys: FspVolumeNotify: allow multiple outstanding calls to FspFileSystemNotifyBegin
2022-01-15 15:46:56 +00:00
Bill Zissimopoulos
57fce78ff3
sys: FspVolumeNotifyWork: always acquire the rename lock shared
2022-01-12 15:43:05 +00:00
Bill Zissimopoulos
751eaa69df
update source copyright to 2022
2022-01-07 17:30:49 +00:00
Bill Zissimopoulos
41cc70e573
ARM64: initial port
2021-12-07 14:40:28 +00:00
Bill Zissimopoulos
c208e0ecbd
sys: cache FileDesc->DispositionStatus
...
DeleteFileW and RemoveDirectoryW in recent versions of Windows 10 have
been changed to perform a FileDispositionInformationEx with POSIX
semantics and if that fails to retry with FileDispositionInformation.
Unfortunately this is done even for legitimate error codes such as
STATUS_DIRECTORY_NOT_EMPTY.
This means that user mode file systems have to do unnecessary CanDelete
checks even when they support FileDispositionInformationEx. The extra
check incurs extra context switches, and in some cases it may also be
costly to compute (e.g. FUSE).
We optimize this away by storing the status of the last CanDelete check
in the FileDesc and then continue returning the same status code for
all checks for the same FileDesc.
2021-12-04 12:36:12 +00:00
Bill Zissimopoulos
c32b1c19c2
sys: FspFsvolQueryDirectoryRetry: early exit when pattern not wild
2021-12-03 17:20:50 +00:00
Bill Zissimopoulos
00219f29cf
sys: POSIX rename improvements
2021-11-25 10:35:22 +00:00
Bill Zissimopoulos
c4f994f8f6
sys: FspFsvolSetDispositionInformation
...
return STATUS_FILE_DELETED if file is already deleted
2021-11-24 18:31:48 +00:00
Bill Zissimopoulos
91211f6ccb
sys: reimplement POSIX unlink
2021-11-24 16:03:31 +00:00
Bill Zissimopoulos
d72fe2ee33
sys: FspFsvolSetDispositionInformation: ignore FILE_DISPOSITION_FORCE_IMAGE_SECTION_CHECK flag
2021-11-19 17:16:36 +00:00
Bill Zissimopoulos
9eaaefd154
sys,dll: debug support for DispositionEx, RenameEx
2021-10-21 15:54:38 +01:00