X-Git-Url: https://git.reactos.org/?p=reactos.git;a=blobdiff_plain;f=reactos%2Flib%2Fkernel32%2Ffile%2Fnpipe.c;h=687888b1baad8f5919d1c792825bec6b5beffc6c;hp=32a8e7d8cb99bac5d608c385ca99da078b433caf;hb=ccabddbffddc9ba4a4977299d9e525bc8fadda6f;hpb=2229c3b1f4c3e80e45ea1f728ad65e89f3d319f3 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; }