Merge 16858 from trunk:
Properly propagate the SL_PENDING_RETURNED flag to stack locations in IofCompleteRequest and fix the priority boost for master IRPs.
Modified: branches/ros-branch-0_2_7/reactos/ntoskrnl/io/irp.c

Modified: branches/ros-branch-0_2_7/reactos/ntoskrnl/io/irp.c
--- branches/ros-branch-0_2_7/reactos/ntoskrnl/io/irp.c	2005-08-03 17:17:57 UTC (rev 17019)
+++ branches/ros-branch-0_2_7/reactos/ntoskrnl/io/irp.c	2005-08-03 17:18:54 UTC (rev 17020)
@@ -1158,10 +1158,7 @@
         {
             if ((Irp->CurrentLocation <= Irp->StackCount) && (Irp->PendingReturned))
             {
-                if (IoGetCurrentIrpStackLocation(Irp)->Control & SL_PENDING_RETURNED)
-                {
-                    Irp->PendingReturned = TRUE;
-                }
+                IoMarkIrpPending(Irp);
             }
         }
 
@@ -1191,7 +1188,7 @@
         IoFreeIrp(Irp);
 
         /* Complete the Master IRP */
-        if (!MasterIrpCount) IofCompleteRequest(MasterIrp, IO_NO_INCREMENT);
+        if (!MasterIrpCount) IofCompleteRequest(MasterIrp, PriorityBoost);
         return;
     }
 
@@ -1219,12 +1216,10 @@
         }
         else
         {
-            DPRINT1("BUG BUG, YOU SHOULDNT BE HERE\n");
-            #if 0
+#if 0
             /* Page 166 */
-            /* When we'll actually support Async Paging I/O Properly... */
             KeInitializeApc(&Irp->Tail.Apc
-                            &Irp->tail.Overlay.Thread->Tcb,
+                            &Irp->Tail.Overlay.Thread->Tcb,
                             Irp->ApcEnvironment,
                             IopCompletePageWrite,
                             NULL,
@@ -1235,7 +1230,10 @@
                              NULL,
                              NULL,
                              PriorityBoost);
-            #endif
+#else
+            /* Not implemented yet. */
+            ASSERT(FALSE);
+#endif
         }
         return;
     }