From ccabddbffddc9ba4a4977299d9e525bc8fadda6f Mon Sep 17 00:00:00 2001 From: Eric Kohl Date: Sun, 27 Feb 2005 15:46:46 +0000 Subject: [PATCH] ConnectNamedPipe must return TRUE if lpOverlapped is not NULL and NtFsIoControl returns STATUS_PENDING. svn path=/trunk/; revision=13765 --- reactos/lib/kernel32/file/npipe.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/reactos/lib/kernel32/file/npipe.c b/reactos/lib/kernel32/file/npipe.c index 32a8e7d8cb9..687888b1baa 100644 --- a/reactos/lib/kernel32/file/npipe.c +++ b/reactos/lib/kernel32/file/npipe.c @@ -330,6 +330,9 @@ ConnectNamedPipe(HANDLE hNamedPipe, 0, NULL, 0); + if ((lpOverlapped != NULL) && (Status == STATUS_PENDING)) + return TRUE; + if ((lpOverlapped == NULL) && (Status == STATUS_PENDING)) { Status = NtWaitForSingleObject(hNamedPipe, @@ -338,17 +341,19 @@ ConnectNamedPipe(HANDLE hNamedPipe, if (!NT_SUCCESS(Status)) { SetLastErrorByStatus(Status); - return(FALSE); + return FALSE; } Status = Iosb.Status; } + if ((!NT_SUCCESS(Status) && Status != STATUS_PIPE_CONNECTED) || (Status == STATUS_PENDING)) { SetLastErrorByStatus(Status); - return(FALSE); + return FALSE; } - return(TRUE); + + return TRUE; }