From 4d1949f841ac2d0230427ef14b2e46a53411a522 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Fri, 23 Dec 2011 15:56:25 +0000 Subject: [PATCH] [FASTFAT] - Revert r54731 svn path=/trunk/; revision=54738 --- reactos/drivers/filesystems/fastfat/rw.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/reactos/drivers/filesystems/fastfat/rw.c b/reactos/drivers/filesystems/fastfat/rw.c index 8b8021a4d3c..57edf7ef6bd 100644 --- a/reactos/drivers/filesystems/fastfat/rw.c +++ b/reactos/drivers/filesystems/fastfat/rw.c @@ -558,6 +558,17 @@ VfatRead(PVFAT_IRP_CONTEXT IrpContext) Fcb = IrpContext->FileObject->FsContext; ASSERT(Fcb); + if (Fcb->Flags & FCB_IS_PAGE_FILE) + { + PFATINFO FatInfo = &IrpContext->DeviceExt->FatInfo; + IrpContext->Stack->Parameters.Read.ByteOffset.QuadPart += FatInfo->dataStart * FatInfo->BytesPerSector; + IoSkipCurrentIrpStackLocation(IrpContext->Irp); + DPRINT("Read from page file, disk offset %I64x\n", IrpContext->Stack->Parameters.Read.ByteOffset.QuadPart); + Status = IoCallDriver(IrpContext->DeviceExt->StorageDevice, IrpContext->Irp); + VfatFreeIrpContext(IrpContext); + return Status; + } + DPRINT("<%wZ>\n", &Fcb->PathNameU); ByteOffset = IrpContext->Stack->Parameters.Read.ByteOffset; @@ -760,6 +771,17 @@ NTSTATUS VfatWrite (PVFAT_IRP_CONTEXT IrpContext) Fcb = IrpContext->FileObject->FsContext; ASSERT(Fcb); + if (Fcb->Flags & FCB_IS_PAGE_FILE) + { + PFATINFO FatInfo = &IrpContext->DeviceExt->FatInfo; + IrpContext->Stack->Parameters.Write.ByteOffset.QuadPart += FatInfo->dataStart * FatInfo->BytesPerSector; + IoSkipCurrentIrpStackLocation(IrpContext->Irp); + DPRINT("Write to page file, disk offset %I64x\n", IrpContext->Stack->Parameters.Write.ByteOffset.QuadPart); + Status = IoCallDriver(IrpContext->DeviceExt->StorageDevice, IrpContext->Irp); + VfatFreeIrpContext(IrpContext); + return Status; + } + DPRINT("<%wZ>\n", &Fcb->PathNameU); /* fail if file is a directory and no paged read */