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