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;
}
Show replies by date