Index: ntoskrnl/cache/section/io.c =================================================================== --- ntoskrnl/cache/section/io.c (revision 59130) +++ ntoskrnl/cache/section/io.c (working copy) @@ -187,7 +187,9 @@ } DPRINT("Paging IO Done: %08x\n", ReadStatus->Status); - Status = ReadStatus->Status == STATUS_END_OF_FILE ? STATUS_SUCCESS : ReadStatus->Status; + // when "ReadStatus->Information > 0" is false and "ReadStatus->Status == STATUS_END_OF_FILE" is true + // it means that read pointer is out of file, so we must fail + Status = ReadStatus->Status == STATUS_END_OF_FILE && ReadStatus->Information > 0 ? STATUS_SUCCESS : ReadStatus->Status; return Status; }