diff --git a/reactos/drivers/filesystems/ntfs/fsctl.c b/reactos/drivers/filesystems/ntfs/fsctl.c index 71a02a9e813..99f107eafb4 100644 --- a/reactos/drivers/filesystems/ntfs/fsctl.c +++ b/reactos/drivers/filesystems/ntfs/fsctl.c @@ -712,7 +712,7 @@ GetVolumeBitmap(PDEVICE_EXTENSION DeviceExt, return STATUS_BUFFER_TOO_SMALL; } - BitmapBuffer = NtfsGetUserBuffer(Irp); + BitmapBuffer = NtfsGetUserBuffer(Irp, FALSE); if (Irp->RequestorMode == UserMode) { _SEH2_TRY diff --git a/reactos/drivers/filesystems/ntfs/misc.c b/reactos/drivers/filesystems/ntfs/misc.c index a163e0fd230..27bd34e79b4 100644 --- a/reactos/drivers/filesystems/ntfs/misc.c +++ b/reactos/drivers/filesystems/ntfs/misc.c @@ -117,11 +117,12 @@ NtfsFileFlagsToAttributes(ULONG NtfsAttributes, } PVOID -NtfsGetUserBuffer(PIRP Irp) +NtfsGetUserBuffer(PIRP Irp, + BOOLEAN Paging) { if (Irp->MdlAddress != NULL) { - return MmGetSystemAddressForMdlSafe(Irp->MdlAddress, HighPagePriority); + return MmGetSystemAddressForMdlSafe(Irp->MdlAddress, (Paging ? HighPagePriority : NormalPagePriority)); } else { diff --git a/reactos/drivers/filesystems/ntfs/ntfs.h b/reactos/drivers/filesystems/ntfs/ntfs.h index 9bc263b5928..a18fbdc89e2 100644 --- a/reactos/drivers/filesystems/ntfs/ntfs.h +++ b/reactos/drivers/filesystems/ntfs/ntfs.h @@ -743,7 +743,8 @@ NtfsAllocateIrpContext(PDEVICE_OBJECT DeviceObject, PIRP Irp); PVOID -NtfsGetUserBuffer(PIRP Irp); +NtfsGetUserBuffer(PIRP Irp, + BOOLEAN Paging); #if 0 BOOLEAN diff --git a/reactos/drivers/filesystems/ntfs/rw.c b/reactos/drivers/filesystems/ntfs/rw.c index fa7aeb0f131..7387b8572ce 100644 --- a/reactos/drivers/filesystems/ntfs/rw.c +++ b/reactos/drivers/filesystems/ntfs/rw.c @@ -196,7 +196,7 @@ NtfsRead(PNTFS_IRP_CONTEXT IrpContext) DeviceExt = DeviceObject->DeviceExtension; ReadLength = Stack->Parameters.Read.Length; ReadOffset = Stack->Parameters.Read.ByteOffset; - Buffer = NtfsGetUserBuffer(Irp); + Buffer = NtfsGetUserBuffer(Irp, Irp->Flags & IRP_PAGING_IO); Status = NtfsReadFile(DeviceExt, FileObject,