From be204b41189ba545e4df340548be29e6028c3523 Mon Sep 17 00:00:00 2001 From: Bill Zissimopoulos Date: Tue, 24 Nov 2015 14:11:49 -0800 Subject: [PATCH] sys: ioq --- src/sys/ioq.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/sys/ioq.c b/src/sys/ioq.c index 700fa92d..384d9ec4 100644 --- a/src/sys/ioq.c +++ b/src/sys/ioq.c @@ -183,13 +183,16 @@ BOOLEAN FspIoqPostIrp(FSP_IOQ *Ioq, PIRP Irp) PIRP FspIoqNextPendingIrp(FSP_IOQ *Ioq, ULONG millis) { - NTSTATUS Result; - LARGE_INTEGER Timeout; - Timeout.QuadPart = (LONGLONG)millis * 10000; - Result = KeWaitForSingleObject(&Ioq->PendingIrpEvent, Executive, KernelMode, FALSE, - -1 == millis ? 0 : &Timeout); - if (!NT_SUCCESS(Result)) - return 0; + if (0 != millis) + { + NTSTATUS Result; + LARGE_INTEGER Timeout; + Timeout.QuadPart = (LONGLONG)millis * 10000; + Result = KeWaitForSingleObject(&Ioq->PendingIrpEvent, Executive, KernelMode, FALSE, + -1 == millis ? 0 : &Timeout); + if (!NT_SUCCESS(Result)) + return 0; + } return IoCsqRemoveNextIrp(&Ioq->PendingIoCsq, (PVOID)1); }