ConnectNamedPipe must return TRUE if lpOverlapped is not NULL and NtFsIoControl returns STATUS_PENDING. Modified: trunk/reactos/lib/kernel32/file/npipe.c _____
Modified: trunk/reactos/lib/kernel32/file/npipe.c --- trunk/reactos/lib/kernel32/file/npipe.c 2005-02-27 14:55:01 UTC (rev 13764) +++ trunk/reactos/lib/kernel32/file/npipe.c 2005-02-27 15:46:46 UTC (rev 13765) @@ -330,6 +330,9 @@
0, NULL, 0); + if ((lpOverlapped != NULL) && (Status == STATUS_PENDING)) + return TRUE; + if ((lpOverlapped == NULL) && (Status == STATUS_PENDING)) { Status = NtWaitForSingleObject(hNamedPipe, @@ -338,17 +341,19 @@ 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; }