sys: implement FsvrtDeviceExpirationRoutine and supporting infra

This commit is contained in:
Bill Zissimopoulos
2015-12-16 16:11:29 -08:00
parent ec0e8548b5
commit 460c4e0c55
5 changed files with 135 additions and 3 deletions

View File

@ -238,7 +238,11 @@ VOID FspIoqRemoveExpired(FSP_IOQ *Ioq, PLARGE_INTEGER Timeout)
{
FSP_IOQ_PEEK_CONTEXT PeekContext;
PeekContext.IrpHint = 0;
PeekContext.ExpirationTime = KeQueryInterruptTime() - Timeout->QuadPart;
PeekContext.ExpirationTime = KeQueryInterruptTime();
if (PeekContext.ExpirationTime >= (ULONGLONG)Timeout->QuadPart)
PeekContext.ExpirationTime -= Timeout->QuadPart;
else
PeekContext.ExpirationTime = 0;
PIRP Irp;
while (0 != (Irp = IoCsqRemoveNextIrp(&Ioq->PendingIoCsq, &PeekContext)))
FspIoqPendingCompleteCanceledIrp(&Ioq->PendingIoCsq, Irp);