diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c index fd72a612486..972d600d6c5 100644 --- a/dlls/ntdll/file.c +++ b/dlls/ntdll/file.c @@ -599,10 +599,22 @@ NTSTATUS WINAPI NtReadFile(HANDLE hFile, HANDLE hEvent, if (!result || total == length) { if (total) + { status = STATUS_SUCCESS; - else - status = (type == FD_TYPE_FILE || type == FD_TYPE_CHAR) ? STATUS_END_OF_FILE : STATUS_PIPE_BROKEN; - goto done; + goto done; + } + switch (type) + { + case FD_TYPE_FILE: + case FD_TYPE_CHAR: + status = STATUS_END_OF_FILE; + goto done; + case FD_TYPE_SERIAL: + break; + default: + status = STATUS_PIPE_BROKEN; + goto done; + } } } else