diff --git a/reactos/ntoskrnl/io/iomgr/iomdl.c b/reactos/ntoskrnl/io/iomgr/iomdl.c index 8ccb16d330f..c4be5ef6e21 100644 --- a/reactos/ntoskrnl/io/iomgr/iomdl.c +++ b/reactos/ntoskrnl/io/iomgr/iomdl.c @@ -98,6 +98,10 @@ IoBuildPartialMdl(IN PMDL SourceMdl, PPFN_NUMBER TargetPages = (PPFN_NUMBER)(TargetMdl + 1); PPFN_NUMBER SourcePages = (PPFN_NUMBER)(SourceMdl + 1); ULONG Offset; + ULONG FlagsMask = (MDL_IO_PAGE_READ | + MDL_SOURCE_IS_NONPAGED_POOL | + MDL_MAPPED_TO_SYSTEM_VA | + MDL_IO_SPACE); /* Calculate the offset */ Offset = (ULONG)((ULONG_PTR)VirtualAddress - @@ -118,10 +122,7 @@ IoBuildPartialMdl(IN PMDL SourceMdl, /* Set the MDL Flags */ TargetMdl->MdlFlags = (MDL_ALLOCATED_FIXED_SIZE | MDL_ALLOCATED_MUST_SUCCEED); - TargetMdl->MdlFlags |= (MDL_IO_PAGE_READ | - MDL_SOURCE_IS_NONPAGED_POOL | - MDL_MAPPED_TO_SYSTEM_VA | - MDL_IO_SPACE); + TargetMdl->MdlFlags |= SourceMdl->MdlFlags & FlagsMask; TargetMdl->MdlFlags |= MDL_PARTIAL; /* Set the mapped VA */