mirror of
https://github.com/winfsp/winfsp.git
synced 2025-04-23 08:53:01 -05:00
sys: ioq: FspIoqRemoveExpired: add InterruptTime parameter
This commit is contained in:
parent
990955ff61
commit
2c9cd46e4b
@ -442,9 +442,11 @@ static VOID FspFsvolDeviceExpirationRoutine(PVOID Context)
|
|||||||
|
|
||||||
PDEVICE_OBJECT DeviceObject = Context;
|
PDEVICE_OBJECT DeviceObject = Context;
|
||||||
FSP_FSVOL_DEVICE_EXTENSION *FsvolDeviceExtension = FspFsvolDeviceExtension(DeviceObject);
|
FSP_FSVOL_DEVICE_EXTENSION *FsvolDeviceExtension = FspFsvolDeviceExtension(DeviceObject);
|
||||||
|
UINT64 InterruptTime;
|
||||||
KIRQL Irql;
|
KIRQL Irql;
|
||||||
|
|
||||||
FspIoqRemoveExpired(FsvolDeviceExtension->Ioq);
|
InterruptTime = KeQueryInterruptTime();
|
||||||
|
FspIoqRemoveExpired(FsvolDeviceExtension->Ioq, InterruptTime);
|
||||||
|
|
||||||
KeAcquireSpinLock(&FsvolDeviceExtension->ExpirationLock, &Irql);
|
KeAcquireSpinLock(&FsvolDeviceExtension->ExpirationLock, &Irql);
|
||||||
FsvolDeviceExtension->ExpirationInProgress = FALSE;
|
FsvolDeviceExtension->ExpirationInProgress = FALSE;
|
||||||
|
@ -375,7 +375,7 @@ NTSTATUS FspIoqCreate(
|
|||||||
VOID FspIoqDelete(FSP_IOQ *Ioq);
|
VOID FspIoqDelete(FSP_IOQ *Ioq);
|
||||||
VOID FspIoqStop(FSP_IOQ *Ioq);
|
VOID FspIoqStop(FSP_IOQ *Ioq);
|
||||||
BOOLEAN FspIoqStopped(FSP_IOQ *Ioq);
|
BOOLEAN FspIoqStopped(FSP_IOQ *Ioq);
|
||||||
VOID FspIoqRemoveExpired(FSP_IOQ *Ioq);
|
VOID FspIoqRemoveExpired(FSP_IOQ *Ioq, UINT64 InterruptTime);
|
||||||
BOOLEAN FspIoqPostIrpEx(FSP_IOQ *Ioq, PIRP Irp, BOOLEAN BestEffort, NTSTATUS *PResult);
|
BOOLEAN FspIoqPostIrpEx(FSP_IOQ *Ioq, PIRP Irp, BOOLEAN BestEffort, NTSTATUS *PResult);
|
||||||
PIRP FspIoqNextPendingIrp(FSP_IOQ *Ioq, PIRP BoundaryIrp, PLARGE_INTEGER Timeout,
|
PIRP FspIoqNextPendingIrp(FSP_IOQ *Ioq, PIRP BoundaryIrp, PLARGE_INTEGER Timeout,
|
||||||
PIRP CancellableIrp);
|
PIRP CancellableIrp);
|
||||||
|
@ -509,11 +509,11 @@ BOOLEAN FspIoqStopped(FSP_IOQ *Ioq)
|
|||||||
return Result;
|
return Result;
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID FspIoqRemoveExpired(FSP_IOQ *Ioq)
|
VOID FspIoqRemoveExpired(FSP_IOQ *Ioq, UINT64 InterruptTime)
|
||||||
{
|
{
|
||||||
FSP_IOQ_PEEK_CONTEXT PeekContext;
|
FSP_IOQ_PEEK_CONTEXT PeekContext;
|
||||||
PeekContext.IrpHint = 0;
|
PeekContext.IrpHint = 0;
|
||||||
PeekContext.ExpirationTime = QueryInterruptTimeInSec();
|
PeekContext.ExpirationTime = ConvertInterruptTimeToSec(InterruptTime);
|
||||||
PIRP Irp;
|
PIRP Irp;
|
||||||
while (0 != (Irp = IoCsqRemoveNextIrp(&Ioq->PendingIoCsq, &PeekContext)))
|
while (0 != (Irp = IoCsqRemoveNextIrp(&Ioq->PendingIoCsq, &PeekContext)))
|
||||||
Ioq->CompleteCanceledIrp(Irp);
|
Ioq->CompleteCanceledIrp(Irp);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user