Commit Graph

58 Commits

Author SHA1 Message Date
c0fa5696d7 sys: FspVolumeFastTransact 2022-05-17 17:25:18 +01: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
0af0bfbe7c sys: FspFsvolClose: convert CLOSE requests to synchronous when above the IOQ watermark 2021-01-25 12:45:33 -08:00
aedf01a384 update source copyright for 2020 2020-01-02 17:50:40 -08:00
781deff06f sys: default TransactTimeout changes 2019-06-11 17:53:34 -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
a1af8ff921 sys: Queued Events and use fin FSP_IOQ 2016-12-03 19:41:26 -08: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
380ec074ca sys: ioq: clarify comment 2016-07-23 18:43:02 -07:00
968de4689c inc,src,tst: add AGPLv3 notices 2016-04-25 14:29:05 -07:00
7499c964b9 sys: FspVolumeTransact: upper bound on loop guarantees forward progress! 2016-04-12 15:42:06 -07:00
7ff99da000 update copyright notices for 2016 2016-03-17 14:59:46 -07:00
2c9cd46e4b sys: ioq: FspIoqRemoveExpired: add InterruptTime parameter 2016-02-17 17:01:07 -08:00
8164ebf370 sys: ioq: PendingIrpEvent is now a SynchronizationEvent, instead of a NotificationEvent 2016-02-16 17:44:32 -08:00
440f66a786 sys: ioq: use FsRtlCancellableWaitForSingleObject 2016-02-14 14:31:48 -08:00
acf1b453fc sys: FspIopRetryCompleteIrp() and related changes 2016-01-27 13:41:37 -08:00
eda129ae81 sys: FSP_IOCMPL_DISPATCH now returns NTSTATUS 2016-01-27 11:59:52 -08:00
af5745d5fc sys: FspIopDispatchRetryComplete() 2016-01-26 19:52:36 -08:00
ffbe13e6d9 sys: ioq: FspIoqRetryCompleteIrp(), FspIoqNextCompleteIrp() 2016-01-26 17:13:34 -08:00
0de4ba4f1b sys: ioq: FspIoqRetryCompleteIrp(), FspIoqNextCompletedIrp() 2016-01-26 17:01:26 -08:00
69fd1ebd6c sys: store FileInfo in FileNode's 2016-01-23 14:01:53 -08:00
0bedee7d5f sys: introduce private NTSTATUS codes FSP_STATUS_POST_IOQ* and ensure that Irp is not touched after STATUS_PENDING 2016-01-17 14:12:05 -08:00
e885905c77 sys: ioq: IRP can no longer be canceled once they enter the Processing state 2016-01-11 17:14:06 -08:00
9b93df1788 sys: FspIoqNextPendingIrp: add BoundaryIrp parameter 2016-01-05 17:10:44 -08:00
bd5b1e59c1 sys: FspIoqPostIrpEx 2016-01-05 15:50:37 -08:00
3f7102a2ed sys: ioq 2015-12-28 16:20:35 -08:00
72fdea5e78 sys: ioq 2015-12-28 11:17:37 -08:00
3d381145e3 sys: ioq 2015-12-28 09:51:55 -08:00
e91255cef3 sys: Ioq bucket count 2015-12-27 22:23:07 -08:00
6d2a56cea0 Major refactoring: testing 2015-12-27 22:08:56 -08:00
5fb9953a3a sys: ioq: now includes a dictionary for fast translation of IrpHint to Irp 2015-12-27 17:49:17 -08:00
6f8e169bc4 sys: ioq: implement IRP capacity 2015-12-23 11:14:40 -08:00
e53ba61f84 sys: ioq: change IRP timeout handling 2015-12-22 21:58:39 -08:00
7197501c9a Major refactoring: WIP 2015-12-20 10:57:45 -08:00
460c4e0c55 sys: implement FsvrtDeviceExpirationRoutine and supporting infra 2015-12-16 16:11:29 -08:00
9e82247366 sys: ioq: now supports IRP expiration 2015-12-16 10:43:33 -08:00
aee12e1c5f sys: FspFsvrtTransact: now has timeout 2015-12-14 12:36:40 -08:00
c3c690c46b sys: ioq: couple of fixes 2015-12-08 14:00:13 -08:00
18025573a3 sys: rename FspIopCompleteRequest to FspIopCompleteIrp 2015-12-06 18:06:19 -08:00
2668e05748 sys: WIP 2015-11-28 13:17:46 -08:00
adc662b6c3 sys: static analysis fixes 2015-11-28 00:39:22 -08:00
3bc7f44dd9 sys: static analysis fixes 2015-11-28 00:31:26 -08:00
6ba60198ab sys: FspIoqStop() 2015-11-25 12:16:31 -08:00
0f0b1f2c46 sys: ioq: event becomes signaled when ioq is disabled 2015-11-24 20:21:01 -08:00