mirror of
https://github.com/winfsp/winfsp.git
synced 2025-04-23 00:43:00 -05:00
sys: read,write: IRP_MN_MDL improvements
This commit is contained in:
parent
a525e095d3
commit
e0b0b1b367
@ -175,8 +175,6 @@ static NTSTATUS FspFsvolReadCached(
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ASSERT(0 == Irp->MdlAddress);
|
|
||||||
|
|
||||||
Result = FspCcMdlRead(FileObject, &ReadOffset, ReadLength, &Irp->MdlAddress,
|
Result = FspCcMdlRead(FileObject, &ReadOffset, ReadLength, &Irp->MdlAddress,
|
||||||
&Irp->IoStatus);
|
&Irp->IoStatus);
|
||||||
if (!NT_SUCCESS(Result))
|
if (!NT_SUCCESS(Result))
|
||||||
|
@ -442,33 +442,15 @@ NTSTATUS FspCcMdlRead(PFILE_OBJECT FileObject, PLARGE_INTEGER FileOffset, ULONG
|
|||||||
{
|
{
|
||||||
PAGED_CODE();
|
PAGED_CODE();
|
||||||
|
|
||||||
NTSTATUS Result;
|
|
||||||
|
|
||||||
*PMdlChain = 0;
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
CcMdlRead(FileObject, FileOffset, Length, PMdlChain, IoStatus);
|
CcMdlRead(FileObject, FileOffset, Length, PMdlChain, IoStatus);
|
||||||
Result = IoStatus->Status;
|
return IoStatus->Status;
|
||||||
}
|
}
|
||||||
except(EXCEPTION_EXECUTE_HANDLER)
|
except (EXCEPTION_EXECUTE_HANDLER)
|
||||||
{
|
{
|
||||||
Result = GetExceptionCode();
|
return GetExceptionCode();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!NT_SUCCESS(Result))
|
|
||||||
{
|
|
||||||
if (0 != *PMdlChain)
|
|
||||||
{
|
|
||||||
CcMdlReadComplete(FileObject, *PMdlChain);
|
|
||||||
*PMdlChain = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
IoStatus->Information = 0;
|
|
||||||
IoStatus->Status = Result;
|
|
||||||
}
|
|
||||||
|
|
||||||
return Result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS FspCcMdlReadComplete(PFILE_OBJECT FileObject, PMDL MdlChain)
|
NTSTATUS FspCcMdlReadComplete(PFILE_OBJECT FileObject, PMDL MdlChain)
|
||||||
@ -491,33 +473,15 @@ NTSTATUS FspCcPrepareMdlWrite(PFILE_OBJECT FileObject, PLARGE_INTEGER FileOffset
|
|||||||
{
|
{
|
||||||
PAGED_CODE();
|
PAGED_CODE();
|
||||||
|
|
||||||
NTSTATUS Result;
|
|
||||||
|
|
||||||
*PMdlChain = 0;
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
CcPrepareMdlWrite(FileObject, FileOffset, Length, PMdlChain, IoStatus);
|
CcPrepareMdlWrite(FileObject, FileOffset, Length, PMdlChain, IoStatus);
|
||||||
Result = IoStatus->Status;
|
return IoStatus->Status;
|
||||||
}
|
}
|
||||||
except(EXCEPTION_EXECUTE_HANDLER)
|
except (EXCEPTION_EXECUTE_HANDLER)
|
||||||
{
|
{
|
||||||
Result = GetExceptionCode();
|
return GetExceptionCode();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!NT_SUCCESS(Result))
|
|
||||||
{
|
|
||||||
if (0 != *PMdlChain)
|
|
||||||
{
|
|
||||||
CcMdlWriteAbort(FileObject, *PMdlChain);
|
|
||||||
*PMdlChain = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
IoStatus->Information = 0;
|
|
||||||
IoStatus->Status = Result;
|
|
||||||
}
|
|
||||||
|
|
||||||
return Result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS FspCcMdlWriteComplete(PFILE_OBJECT FileObject, PLARGE_INTEGER FileOffset, PMDL MdlChain)
|
NTSTATUS FspCcMdlWriteComplete(PFILE_OBJECT FileObject, PLARGE_INTEGER FileOffset, PMDL MdlChain)
|
||||||
|
@ -218,8 +218,6 @@ static NTSTATUS FspFsvolWriteCached(
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ASSERT(0 == Irp->MdlAddress);
|
|
||||||
|
|
||||||
Result = FspCcPrepareMdlWrite(FileObject, &WriteOffset, WriteLength, &Irp->MdlAddress,
|
Result = FspCcPrepareMdlWrite(FileObject, &WriteOffset, WriteLength, &Irp->MdlAddress,
|
||||||
&Irp->IoStatus);
|
&Irp->IoStatus);
|
||||||
if (!NT_SUCCESS(Result))
|
if (!NT_SUCCESS(Result))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user