sys: IRP_MJ_READ, IRP_MJ_WRITE

This commit is contained in:
Bill Zissimopoulos
2016-03-09 15:35:38 -08:00
parent 319a0087f8
commit 3939c096e9
2 changed files with 6 additions and 10 deletions

View File

@ -90,10 +90,8 @@ static NTSTATUS FspFsvolWriteCached(
NTSTATUS Result;
BOOLEAN Retrying = 0 != FspIrpRequest(Irp);
FSP_FSVOL_DEVICE_EXTENSION *FsvolDeviceExtension = FspFsvolDeviceExtension(FsvolDeviceObject);
PFILE_OBJECT FileObject = IrpSp->FileObject;
FSP_FILE_NODE *FileNode = FileObject->FsContext;
FSP_FILE_DESC *FileDesc = FileObject->FsContext2;
LARGE_INTEGER WriteOffset = IrpSp->Parameters.Write.ByteOffset;
ULONG WriteLength = IrpSp->Parameters.Write.Length;
#if 0
@ -108,8 +106,6 @@ static NTSTATUS FspFsvolWriteCached(
UINT64 WriteEndOffset;
BOOLEAN Success;
ASSERT(FileNode == FileDesc->FileNode);
/* should we defer the write? */
Success = DEBUGTEST(90, TRUE) && CcCanIWrite(FileObject, WriteLength, CanWait, Retrying);
if (!Success)
@ -133,7 +129,8 @@ static NTSTATUS FspFsvolWriteCached(
return FspWqRepostIrpWorkItem(Irp, FspFsvolWriteCached, 0);
/* compute new file size and allocation size */
ASSERT(FspTimeoutInfinity32 == FsvolDeviceExtension->VolumeParams.FileInfoTimeout);
ASSERT(FspTimeoutInfinity32 ==
FspFsvolDeviceExtension(FsvolDeviceObject)->VolumeParams.FileInfoTimeout);
FspFileNodeGetFileInfo(FileNode, &FileInfo);
FileSizes.AllocationSize.QuadPart = FileInfo.AllocationSize;
FileSizes.FileSize.QuadPart = FileInfo.FileSize;
@ -146,6 +143,8 @@ static NTSTATUS FspFsvolWriteCached(
FileSizes.FileSize.QuadPart = WriteEndOffset;
if (FileSizes.FileSize.QuadPart > FileSizes.AllocationSize.QuadPart)
{
FSP_FSVOL_DEVICE_EXTENSION *FsvolDeviceExtension =
FspFsvolDeviceExtension(FsvolDeviceObject);
UINT64 AllocationUnit = FsvolDeviceExtension->VolumeParams.SectorSize *
FsvolDeviceExtension->VolumeParams.SectorsPerAllocationUnit;
FileSizes.AllocationSize.QuadPart = (FileSizes.FileSize.QuadPart + AllocationUnit - 1)