1
0
mirror of https://github.com/winfsp/winfsp.git synced 2026-05-04 00:34:38 -05:00
Commit Graph

924 Commits

Author SHA1 Message Date
Bill Zissimopoulos bb3e92df6c sys, dll: implement POSIX semantics for Rename 2021-10-21 15:39:25 +01:00
Bill Zissimopoulos 19823d84de sys,dll,inc: implement new Delete design and POSIX semantics 2021-10-19 15:23:15 +01:00
Bill Zissimopoulos 3e66082f11 sys: FspFsvolQueryDirectoryCopy: fix issue #380 2021-10-13 16:35:02 +01:00
Bill Zissimopoulos 6e3a8f70b2 update source copyright to 2021 2021-05-21 15:57:05 -07:00
Bill Zissimopoulos ca832988ed dll,sys: fix issue #369
The original WinFsp protocol for shutting down a file system was to issue
an FSP_FSCTL_STOP control code to the fsctl device. This would set the IOQ
to the "stopped" state and would also cancel all active IRP's. Cancelation
of IRP's would sometimes free buffers that may have still been in use by
the user mode file system threads; hence access violation.

To fix this problem a new control code FSP_FSCTL_STOP0 is introduced. The
new file system shutdown protocol is backwards compatible with the original
one and works as follows:

- First the file system process issues an FSP_FSCTL_STOP0 control code which
sets the IOQ to the "stopped" state but does NOT cancel IRP's.

- Then the file system process waits for its dispatcher threads to complete
(see FspFileSystemStopDispatcher).

- Finally the file system process issues an FSP_FSCTL_STOP control code
which stops the (already stopped) IOQ and cancels all IRP's.
2021-05-18 12:30:17 -07:00
Bill Zissimopoulos 33c6e7ee61 sys: fix issue #364 2021-04-16 16:43:34 -07:00
Bill Zissimopoulos 023c925fb6 WinFsp rebranding support 2021-04-12 17:47:34 -07:00
Bill Zissimopoulos b2e677a3d3 sys: FspFsvolSetBasicInformation: issue #362
According to the FILE_BASIC_INFORMATION doc a file system should not update a file timestamp when it receives a value of -1 in the corresponding time field.

This commit converts a -1 timestamp to a 0 timestamp; this directs a WinFsp file system not to update the corresponding file timestamp.

This commit fixes issue #362
2021-04-06 13:41:35 -07:00
Bill Zissimopoulos c5b850be35 sys: improve trace functionality 2021-01-25 13:11:10 -08:00
Bill Zissimopoulos 0af0bfbe7c sys: FspFsvolClose: convert CLOSE requests to synchronous when above the IOQ watermark 2021-01-25 12:45:33 -08:00
Bill Zissimopoulos 1dbcae3985 sys: FspTraceNtStatus: fix spelling mistake 2021-01-25 12:44:59 -08:00
Bill Zissimopoulos a5726c820b sys: add trace functionality 2021-01-13 16:15:06 -08:00
Bill Zissimopoulos 912703cd77 sys: FspBufferUserBuffer: special case Irp->UserBuffer kernel address 2020-10-30 15:39:56 -07:00
Bill Zissimopoulos e59a49992a sys: FspFileNodeInvalidateCachesAndNotifyChangeByName: flush and purge only 2020-10-17 22:06:49 -07:00
Bill Zissimopoulos 6b4b1dff6c sys: notify implementation 2020-10-09 15:19:51 -07:00
Bill Zissimopoulos 92b7989999 tst: winfsp-tests: notify testing 2020-10-09 15:05:31 -07:00
Bill Zissimopoulos 3687df53c6 sys: wait groups and notify implementation 2020-10-09 12:40:49 -07:00
Bill Zissimopoulos a004e4be10 sys: notify implementation 2020-10-08 20:49:24 -07:00
Bill Zissimopoulos 7f360827f6 sys: notify implementation 2020-10-08 15:31:41 -07:00
Bill Zissimopoulos 01f91c771d sys: notify implementation 2020-10-07 17:07:35 -07:00
Bill Zissimopoulos 844fb7171e inc,dll,sys: notify implementation skeleton 2020-10-06 16:37:33 -07:00
Bill Zissimopoulos 32a5b2bc64 tst: winfsp-tests: rename_backslash_test 2020-10-01 11:46:55 -07:00
Bill Zissimopoulos 5045403d85 sys: FspFsvolSetRenameInformation: tolerate trailing backslash on target name 2020-09-28 16:01:38 -07:00
Bill Zissimopoulos 84e0744c28 sys: FspVolumeTransact: FSP_FSCTL_TRANSACT_INTERNAL
Zero out OutputBuffer on error to avoid confusion for fsext providers.
2020-07-29 22:51:17 -07:00
Bill Zissimopoulos 0296502f24 sys: FspFsvolReadNonCached: acquire FileNode shared
See GitHub issue #291 for discussion
2020-07-22 15:42:06 -07:00
Bill Zissimopoulos aa3beba928 sys: silo support 2020-06-05 15:47:19 -07:00
Bill Zissimopoulos 899cd5595d sys: FspIsNtDdiVersionAvailable 2020-06-01 23:11:33 -07:00
Bill Zissimopoulos 2ffb8a1c97 sys: FSP_FSCTL_QUERY_WINFSP
The FSP_FSCTL_QUERY_WINFSP code provides a simple method to determine if
the file system backing a file is a WinFsp file system. To use issue a

    DeviceIoControl(Handle, FSP_FSCTL_QUERY_WINFSP, 0, 0, 0, 0, &Bytes, 0)

If the return value is TRUE this is a WinFsp file system.
2020-05-24 21:04:28 -07:00
Bill Zissimopoulos 42fd57904a sys: FspFsvolReadNonCached: trim ReadLength
During CreateProcess/CreateSection Windows locks the image file (using AcquireFileForNtCreateSection),
gets the image file size and then reads the image file. Unfortunately if the file system (erroneously) reads
past the file size, Windows can bugcheck. This allows a faulty or malicious file system to crash Windows.

This commit adds a check in WinFsp to mitigate this problem.
2020-04-10 19:24:43 -07:00
Bill Zissimopoulos 24b5d48fed add shared/ku/config.h and related changes 2020-02-07 15:40:08 -08:00
Bill Zissimopoulos 71995a1fcd dll,sys: FSP_CFG_REJECT_EARLY_IRP
Includes Avast fix for FUSE.
2020-02-07 15:11:24 -08:00
Bill Zissimopoulos 8497855d80 sys: FSP_DEVICE_REJECT_EARLY_IRP macro 2020-02-07 13:22:09 -08:00
Bill Zissimopoulos bf6d56ceac inc,sys,tst: FSP_FSCTL_VOLUME_PARAMS::RejectIrpPriorToTransact0 2020-02-03 16:38:55 -08:00
Bill Zissimopoulos 51350d5a42 inc,sys,tst: FSP_FSCTL_VOLUME_PARAMS::RejectIrpPriorToTransact 2020-02-03 14:59:23 -08:00
Bill Zissimopoulos aedf01a384 update source copyright for 2020 2020-01-02 17:50:40 -08:00
Bill Zissimopoulos 26fe1a741b sys: FspPropagateTopFlags: propagate union of flags from top level IRP 2019-12-13 16:42:49 -08:00
Bill Zissimopoulos b18df6bba8 sys: release rename lock when doing oplock breaks 2019-12-08 14:27:02 -08:00
Bill Zissimopoulos 39c189aff7 sys: fsext: FspFsextProviderTransact 2019-11-16 14:02:44 -08:00
Bill Zissimopoulos 4b5478e50c sys: dirctl: support directory marker as FUSE style next offset 2019-11-05 22:14:16 -08:00
Bill Zissimopoulos 254174b8e9 sys: avoid using FspFsextProvider unnecessarily 2019-11-04 16:30:30 -08:00
Bill Zissimopoulos 5110b3c5a1 sys: dirctl: support directory marker as FUSE style next offset 2019-10-30 16:40:48 -07:00
Bill Zissimopoulos 29fd9bf779 sys: fsext: allow multiple providers (up to 4) 2019-10-18 16:00:31 -07:00
Bill Zissimopoulos 05b37c744b sys,dll: only user mode sends MountManager IOCTL's
(except for cleanup in FspMountdevFini)
2019-09-08 17:45:00 -07:00
Bill Zissimopoulos 9436fd8402 sys: implement SectorSize queries
- IRP_MJ_QUERY_VOLUME_INFORMATION/FileFsSectorSizeInformation
- IOCTL_STORAGE_QUERY_PROPERTY/StorageAccessAlignmentProperty
2019-09-06 20:52:15 -07:00
Bill Zissimopoulos de75454d50 sys: FspFsvolDeviceControl: disable mountdev handling on fsvol devices 2019-09-06 15:43:20 -07:00
Bill Zissimopoulos 430d7a5650 sys: FspMountdevMake: use non-repeatable (i.e. non UUIDv5) GUID when non-persistent mountdev 2019-09-06 14:34:33 -07:00
Bill Zissimopoulos 4655926d03 sys, dll: mount manager support 2019-09-06 14:24:00 -07:00
Bill Zissimopoulos 565caebe4c sys,dll: FspFileSystemSetMountPoint: mount manager support 2019-09-05 19:58:14 -07:00
Bill Zissimopoulos a47f853beb sys: mountdev: mount manager support 2019-09-05 09:54:36 -07:00
Bill Zissimopoulos 89ec3e6733 ku: UUID v5 generation 2019-09-04 13:45:53 -07:00