From 1ad09f9b99d6ec7c16e154a8fcf6ca00407326a1 Mon Sep 17 00:00:00 2001 From: Bill Zissimopoulos Date: Mon, 7 Mar 2016 18:34:24 -0800 Subject: [PATCH] sys: IRP_MJ_WRITE, IRP_MJ_READ: testing --- src/dll/fsop.c | 2 +- src/sys/read.c | 2 +- src/sys/util.c | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/dll/fsop.c b/src/dll/fsop.c index f84b0bd4..2489be63 100644 --- a/src/dll/fsop.c +++ b/src/dll/fsop.c @@ -455,7 +455,7 @@ FSP_API NTSTATUS FspFileSystemOpWrite(FSP_FILE_SYSTEM *FileSystem, if (STATUS_PENDING != Result) { Response->IoStatus.Information = BytesTransferred; - memcpy(&Response->Rsp.Read.FileInfo, &FileInfo, sizeof FileInfo); + memcpy(&Response->Rsp.Write.FileInfo, &FileInfo, sizeof FileInfo); } return Result; diff --git a/src/sys/read.c b/src/sys/read.c index f030722a..863ed53d 100644 --- a/src/sys/read.c +++ b/src/sys/read.c @@ -197,7 +197,7 @@ static NTSTATUS FspFsvolReadNonCached( if (0 == Irp->MdlAddress) { Result = FspLockUserBuffer(Irp->UserBuffer, ReadLength, - Irp->RequestorMode, IoReadAccess, &Irp->MdlAddress); + Irp->RequestorMode, IoWriteAccess, &Irp->MdlAddress); if (!NT_SUCCESS(Result)) return Result; } diff --git a/src/sys/util.c b/src/sys/util.c index 361fd48f..31202518 100644 --- a/src/sys/util.c +++ b/src/sys/util.c @@ -522,6 +522,7 @@ NTSTATUS FspSafeMdlCreate(PMDL UserMdl, LOCK_OPERATION Operation, FSP_SAFE_MDL * Result = STATUS_INSUFFICIENT_RESOURCES; goto exit; } + SafeMdl->Mdl->MdlFlags |= MDL_PAGES_LOCKED; UserPfnArray = MmGetMdlPfnArray(UserMdl); SafePfnArray = MmGetMdlPfnArray(SafeMdl->Mdl); RtlCopyMemory(SafePfnArray, UserPfnArray, PageCount * sizeof(PFN_NUMBER));