- Clean up the DriverContext that was dirtied by the CSQ
The do while(0) thing feels a bit weird. I can only assume it was done so a 'break' will unlock before returning.

svn path=/trunk/; revision=74176
This commit is contained in:
Ged Murphy 2017-03-15 18:01:54 +00:00
parent aaa7adc518
commit 14e5cfe8eb

View file

@ -290,6 +290,9 @@ IoCsqInsertIrpEx(
if(!IoSetCancelRoutine(Irp, NULL)) if(!IoSetCancelRoutine(Irp, NULL))
break; break;
Irp->Tail.Overlay.DriverContext[3] = 0;
/* OK, looks like we have to de-queue and complete this ourselves */ /* OK, looks like we have to de-queue and complete this ourselves */
Csq->CsqRemoveIrp(Csq, Irp); Csq->CsqRemoveIrp(Csq, Irp);
Csq->CsqCompleteCanceledIrp(Csq, Irp); Csq->CsqCompleteCanceledIrp(Csq, Irp);
@ -363,6 +366,8 @@ IoCsqRemoveIrp(
ASSERT(Context->Csq == Csq); ASSERT(Context->Csq == Csq);
} }
Irp->Tail.Overlay.DriverContext[3] = 0;
} }
while(0); while(0);
@ -423,6 +428,8 @@ IoCsqRemoveNextIrp(
ASSERT(Context->Csq == Csq); ASSERT(Context->Csq == Csq);
} }
Irp->Tail.Overlay.DriverContext[3] = 0;
break; break;
} }