[KERNEL32]

In case of synchronous read, it's legit for the FSD to notify EOF by returning success & zero read length.
It fixes never ending reads when copying a file from NFS to local disk.

CORE-8204
CORE-11327
CORE-13484

svn path=/trunk/; revision=75443
This commit is contained in:
Pierre Schweitzer 2017-07-30 08:31:59 +00:00
parent a128acd13b
commit 0498ff85e3

View file

@ -101,6 +101,13 @@ CopyLoop (
RegionSize,
NULL,
NULL);
/* With sync read, 0 length + status success mean EOF:
* https://msdn.microsoft.com/en-us/library/windows/desktop/aa365467(v=vs.85).aspx
*/
if (NT_SUCCESS(errCode) && IoStatusBlock.Information == 0)
{
errCode = STATUS_END_OF_FILE;
}
if (NT_SUCCESS(errCode) && (NULL == pbCancel || ! *pbCancel))
{
errCode = NtWriteFile(FileHandleDest,