From 5d6425550ec548dab7fee8aa6af612e024a4f633 Mon Sep 17 00:00:00 2001 From: Hartmut Birr Date: Sat, 25 Jan 2003 16:15:33 +0000 Subject: [PATCH] =?UTF-8?q?-IoCancelIrp=20fixed/improved=20(Thanks=20to=20?= =?UTF-8?q?Gunnar=20Andr=EF=BF=BD=20Dalsnes).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit svn path=/trunk/; revision=4067 --- reactos/ntoskrnl/io/cancel.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/reactos/ntoskrnl/io/cancel.c b/reactos/ntoskrnl/io/cancel.c index c381aa439b4..239623fb1d6 100644 --- a/reactos/ntoskrnl/io/cancel.c +++ b/reactos/ntoskrnl/io/cancel.c @@ -16,7 +16,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -/* $Id: cancel.c,v 1.8 2002/09/08 10:23:24 chorns Exp $ +/* $Id: cancel.c,v 1.9 2003/01/25 16:15:33 hbirr Exp $ * * PROJECT: ReactOS kernel * FILE: ntoskrnl/io/cancel.c @@ -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); }