From cbfd8c10202a89c555a20c217522f89e1e16f746 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9=20van=20Geldorp?= Date: Sun, 26 Dec 2004 15:55:14 +0000 Subject: [PATCH] Set I/O completion port on completion of the IRP svn path=/trunk/; revision=12344 --- reactos/ntoskrnl/io/irp.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/reactos/ntoskrnl/io/irp.c b/reactos/ntoskrnl/io/irp.c index 460aff124ca..03ce8aec9e2 100644 --- a/reactos/ntoskrnl/io/irp.c +++ b/reactos/ntoskrnl/io/irp.c @@ -1,4 +1,4 @@ -/* $Id: irp.c,v 1.70 2004/11/10 02:50:59 ion Exp $ +/* $Id: irp.c,v 1.71 2004/12/26 15:55:14 gvg Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -447,6 +447,19 @@ IofCompleteRequest(PIRP Irp, //Windows NT File System Internals, page 154 OriginalFileObject = Irp->Tail.Overlay.OriginalFileObject; + if (NULL != Stack->FileObject + && NULL != Stack->FileObject->CompletionContext + && Irp->PendingReturned) + { + PFILE_OBJECT FileObject = Stack->FileObject; + IoSetIoCompletion(FileObject->CompletionContext->Port, + FileObject->CompletionContext->Key, + Irp->Overlay.AsynchronousParameters.UserApcContext, + Irp->IoStatus.Status, + Irp->IoStatus.Information, + FALSE); + } + if (Irp->PendingReturned || KeGetCurrentIrql() == DISPATCH_LEVEL) { BOOLEAN bStatus;