Commit Graph

138 Commits

Author SHA1 Message Date
9670caa3fe sys,dll: FSP_FSCTL_UNLOAD 2022-08-18 11:05:45 +01:00
a731f0e5d8 sys,dll: MountUseMountmgrFromFSD 2022-06-27 17:28:24 +01:00
29251dc2be sys, dll: convert memory barriers to interlocked operations 2022-01-19 10:55:46 +00:00
751eaa69df update source copyright to 2022 2022-01-07 17:30:49 +00:00
6e3a8f70b2 update source copyright to 2021 2021-05-21 15:57:05 -07:00
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
844fb7171e inc,dll,sys: notify implementation skeleton 2020-10-06 16:37:33 -07:00
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
aedf01a384 update source copyright for 2020 2020-01-02 17:50:40 -08:00
565caebe4c sys,dll: FspFileSystemSetMountPoint: mount manager support 2019-09-05 19:58:14 -07:00
804bcc3354 sys: FspVolumeTransactFsext:
- only allow ControlCodes with 0xC00 bits set in Function
2019-06-22 15:40:48 -07:00
f5fde4c0bb sys: FspVolumeTransactFsext 2019-06-22 15:18:16 -07:00
4ae03629f7 sys: FspFsextProvider: load provider driver 2019-06-18 20:28:59 -07:00
b637a72ec8 sys: FspFsextProvider 2019-06-18 16:11:38 -07:00
d2de5e996c update source copyright for 2019 2019-02-28 10:39:31 -08:00
75ae8daf8f update commercial disclaimer 2018-08-21 18:09:33 -07:00
9bd9cf4fbd update source copyright notices for 2018 2018-01-03 15:29:38 -08:00
a57325e8af update source copyright notices for 2017 2017-01-05 13:56:18 -08:00
23eabe5939 sys: FspFsvolFileSystemControlReparsePoint: FSCL_DELETE_REPARSE_POINT 2017-01-03 00:48:12 -08:00
eecca688bc sys: FspFileNodeInvalidateFileInfo: use after setting/deleting reparse point 2017-01-01 12:53:58 -08:00
23d2083d8f sys: FspFsvolFileSystemControlReparsePoint 2017-01-01 11:23:38 -08:00
830985d331 sys: FspFsvolFileSystemControlReparsePoint: STATUS_ACCESS_DENIED 2016-12-31 23:01:40 -08:00
6b37e2ef12 sys: FspFsvolFileSystemControlReparsePointComplete 2016-12-31 21:26:12 -08:00
62dbaf56e3 sys: FspFsvolFileSystemControlReparsePointComplete 2016-12-31 20:50:03 -08:00
d301164609 sys: FspFsvolFileSystemControlReparsePointComplete: STATUS_INVALID_PARAMETER 2016-12-31 16:56:02 -08:00
1713ce9c9e sys: FSP_STATUS_IGNORE_BIT 2016-12-30 19:48:19 -08:00
c6a6fdfc36 sys: FSCTL_GET_RETRIEVAL_POINTERS 2016-12-30 13:42:46 -08:00
843d3f0362 sys: FspFsvolSetBasicInformation: invalidate dir caches 2016-12-30 11:01:52 -08:00
168acb1a1f sys: statistics: implement FSCTL_FILESYSTEM_GET_STATISTICS 2016-12-26 22:45:48 -08:00
ff3436718c sys: FSP_FILE_DESC::DidSetMetadata 2016-12-23 16:26:16 -08:00
671c0c12ab sys: FSCTL_QUERY_PERSISTENT_VOLUME_STATE 2016-12-15 16:15:22 -08:00
127d4cc4eb sys: fsctl: oplock fixes 2016-11-20 15:27:24 -08:00
aa23672b01 sys: fsctl: enable oplock processing 2016-11-18 22:20:03 -08:00
2267eadbca sys: disable oplock requests momentarily for testing 2016-11-10 12:12:35 -08:00
154aa28381 sys: FspFsvolFileSystemControlOplock: WIP 2016-11-10 12:11:35 -08:00
8395b22ddc sys: oplocks: WIP 2016-11-10 12:10:55 -08:00
32c289fa34 sys: FspFsvolFileSystemControlReparsePoint: replace use of RtlEqualUnicodeString with FspFsvolDeviceVolumePrefixInString 2016-10-14 15:13:52 -07:00
bd952253fb cosmetic fix 2016-10-11 11:39:17 -07:00
c7780cf7fa license: switch to GPLv3 from AGPLv3 2016-10-10 21:33:27 -07:00
ccf58122a2 sys: FspFsvolFileSystemControlReparsePoint: comments 2016-09-12 15:27:31 -07:00
be8c29114a sys: FspFsvolFileSystemControlReparsePoint: improve computation of TargetOnFileSystem field when MUP is being used 2016-09-12 15:11:45 -07:00
bd0acf2289 sys,dll: symbolic link testing 2016-09-11 17:04:01 -07:00
f89c91cd10 sys,dll: SYMLINK_FLAG_RELATIVE 2016-09-11 13:18:54 -07:00
af2cc10c15 sys,dll: reparse point testing 2016-09-10 23:00:55 -07:00
165f3ec45d sys,dll: symlink testing 2016-09-09 21:21:24 -07:00
0c07be9628 sys,dll: reparse point testing 2016-09-09 17:21:56 -07:00
5cd0dfb1b9 sys: reparse point testing 2016-09-09 14:42:22 -07:00
fee75590a8 sys,dll: rename VolumeParams::ReparsePoints* fields 2016-08-21 23:36:09 -07:00
f7e0362350 sys,dll: reparse point implementation: WIP 2016-08-15 04:53:11 -07:00
7337f3c6cd sys,dll: symbolic link (reparse point) support: WIP 2016-08-04 11:25:35 -07:00