update for HEAD-2003021201
[reactos.git] / ntoskrnl / io / cancel.c
index 0b711fd..bec5ede 100644 (file)
@@ -44,6 +44,7 @@ NtCancelIoFile (IN    HANDLE                  FileHandle,
                OUT     PIO_STATUS_BLOCK        IoStatusBlock)
 {
   UNIMPLEMENTED;
+  return(STATUS_NOT_IMPLEMENTED);
 }
 
 BOOLEAN STDCALL 
@@ -56,11 +57,12 @@ IoCancelIrp(PIRP Irp)
    IoAcquireCancelSpinLock(&oldlvl);
    Irp->Cancel = TRUE;
    if (Irp->CancelRoutine == NULL)
-     {
-       return(FALSE);
-     }
-   Irp->CancelRoutine(Irp->Stack[0].DeviceObject, Irp);
-   IoReleaseCancelSpinLock(oldlvl);
+   {
+      IoReleaseCancelSpinLock(oldlvl);
+      return(FALSE);
+   }
+   Irp->CancelIrql = oldlvl;
+   Irp->CancelRoutine(IoGetCurrentIrpStackLocation(Irp)->DeviceObject, Irp);
    return(TRUE);
 }