Properly propagate the SL_PENDING_RETURNED flag to stack locations in IofCompleteRequest and fix the priority boost for master IRPs.

svn path=/trunk/; revision=16858
This commit is contained in:
Filip Navara 2005-07-29 13:28:34 +00:00
parent 714eb0ec09
commit 05bc18eb6c

View file

@ -1158,10 +1158,7 @@ IofCompleteRequest(PIRP Irp,
{ {
if ((Irp->CurrentLocation <= Irp->StackCount) && (Irp->PendingReturned)) if ((Irp->CurrentLocation <= Irp->StackCount) && (Irp->PendingReturned))
{ {
if (IoGetCurrentIrpStackLocation(Irp)->Control & SL_PENDING_RETURNED) IoMarkIrpPending(Irp);
{
Irp->PendingReturned = TRUE;
}
} }
} }
@ -1191,7 +1188,7 @@ IofCompleteRequest(PIRP Irp,
IoFreeIrp(Irp); IoFreeIrp(Irp);
/* Complete the Master IRP */ /* Complete the Master IRP */
if (!MasterIrpCount) IofCompleteRequest(MasterIrp, IO_NO_INCREMENT); if (!MasterIrpCount) IofCompleteRequest(MasterIrp, PriorityBoost);
return; return;
} }
@ -1219,12 +1216,10 @@ IofCompleteRequest(PIRP Irp,
} }
else else
{ {
DPRINT1("BUG BUG, YOU SHOULDNT BE HERE\n"); #if 0
#if 0
/* Page 166 */ /* Page 166 */
/* When we'll actually support Async Paging I/O Properly... */
KeInitializeApc(&Irp->Tail.Apc KeInitializeApc(&Irp->Tail.Apc
&Irp->tail.Overlay.Thread->Tcb, &Irp->Tail.Overlay.Thread->Tcb,
Irp->ApcEnvironment, Irp->ApcEnvironment,
IopCompletePageWrite, IopCompletePageWrite,
NULL, NULL,
@ -1235,7 +1230,10 @@ IofCompleteRequest(PIRP Irp,
NULL, NULL,
NULL, NULL,
PriorityBoost); PriorityBoost);
#endif #else
/* Not implemented yet. */
ASSERT(FALSE);
#endif
} }
return; return;
} }