mirror of
https://github.com/reactos/reactos.git
synced 2025-05-19 17:14:32 +00:00
[NTOSKRNL/MM] Get rid of useless members of MEMORY_AREA struct
This commit is contained in:
parent
defbf63416
commit
c9f924940a
4 changed files with 60 additions and 66 deletions
|
@ -217,20 +217,14 @@ typedef struct _MEMORY_AREA
|
||||||
BOOLEAN DeleteInProgress;
|
BOOLEAN DeleteInProgress;
|
||||||
ULONG Magic;
|
ULONG Magic;
|
||||||
PVOID Vad;
|
PVOID Vad;
|
||||||
union
|
|
||||||
|
struct
|
||||||
{
|
{
|
||||||
struct
|
PROS_SECTION_OBJECT Section;
|
||||||
{
|
LARGE_INTEGER ViewOffset;
|
||||||
PROS_SECTION_OBJECT Section;
|
PMM_SECTION_SEGMENT Segment;
|
||||||
LARGE_INTEGER ViewOffset;
|
LIST_ENTRY RegionListHead;
|
||||||
PMM_SECTION_SEGMENT Segment;
|
} SectionData;
|
||||||
LIST_ENTRY RegionListHead;
|
|
||||||
} SectionData;
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
LIST_ENTRY RegionListHead;
|
|
||||||
} VirtualMemoryData;
|
|
||||||
} Data;
|
|
||||||
} MEMORY_AREA, *PMEMORY_AREA;
|
} MEMORY_AREA, *PMEMORY_AREA;
|
||||||
|
|
||||||
typedef struct _MM_RMAP_ENTRY
|
typedef struct _MM_RMAP_ENTRY
|
||||||
|
|
|
@ -1661,7 +1661,7 @@ MiGetFileObjectForSectionAddress(
|
||||||
if (MemoryArea->Type == MEMORY_AREA_SECTION_VIEW)
|
if (MemoryArea->Type == MEMORY_AREA_SECTION_VIEW)
|
||||||
{
|
{
|
||||||
/* Get the section pointer to the SECTION_OBJECT */
|
/* Get the section pointer to the SECTION_OBJECT */
|
||||||
Section = MemoryArea->Data.SectionData.Section;
|
Section = MemoryArea->SectionData.Section;
|
||||||
*FileObject = Section->FileObject;
|
*FileObject = Section->FileObject;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -1739,7 +1739,7 @@ MiGetFileObjectForVad(
|
||||||
if (MemoryArea->Type == MEMORY_AREA_SECTION_VIEW)
|
if (MemoryArea->Type == MEMORY_AREA_SECTION_VIEW)
|
||||||
{
|
{
|
||||||
/* Get the section pointer to the SECTION_OBJECT */
|
/* Get the section pointer to the SECTION_OBJECT */
|
||||||
Section = MemoryArea->Data.SectionData.Section;
|
Section = MemoryArea->SectionData.Section;
|
||||||
FileObject = Section->FileObject;
|
FileObject = Section->FileObject;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -132,19 +132,19 @@ MmPageOutPhysicalAddress(PFN_NUMBER Page)
|
||||||
if (Type == MEMORY_AREA_SECTION_VIEW)
|
if (Type == MEMORY_AREA_SECTION_VIEW)
|
||||||
{
|
{
|
||||||
ULONG_PTR Entry;
|
ULONG_PTR Entry;
|
||||||
Offset = MemoryArea->Data.SectionData.ViewOffset.QuadPart +
|
Offset = MemoryArea->SectionData.ViewOffset.QuadPart +
|
||||||
((ULONG_PTR)Address - MA_GetStartingAddress(MemoryArea));
|
((ULONG_PTR)Address - MA_GetStartingAddress(MemoryArea));
|
||||||
|
|
||||||
MmLockSectionSegment(MemoryArea->Data.SectionData.Segment);
|
MmLockSectionSegment(MemoryArea->SectionData.Segment);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Get or create a pageop
|
* Get or create a pageop
|
||||||
*/
|
*/
|
||||||
Entry = MmGetPageEntrySectionSegment(MemoryArea->Data.SectionData.Segment,
|
Entry = MmGetPageEntrySectionSegment(MemoryArea->SectionData.Segment,
|
||||||
(PLARGE_INTEGER)&Offset);
|
(PLARGE_INTEGER)&Offset);
|
||||||
if (Entry && MM_IS_WAIT_PTE(Entry))
|
if (Entry && MM_IS_WAIT_PTE(Entry))
|
||||||
{
|
{
|
||||||
MmUnlockSectionSegment(MemoryArea->Data.SectionData.Segment);
|
MmUnlockSectionSegment(MemoryArea->SectionData.Segment);
|
||||||
MmUnlockAddressSpace(AddressSpace);
|
MmUnlockAddressSpace(AddressSpace);
|
||||||
if (Address < MmSystemRangeStart)
|
if (Address < MmSystemRangeStart)
|
||||||
{
|
{
|
||||||
|
@ -154,12 +154,12 @@ MmPageOutPhysicalAddress(PFN_NUMBER Page)
|
||||||
return(STATUS_UNSUCCESSFUL);
|
return(STATUS_UNSUCCESSFUL);
|
||||||
}
|
}
|
||||||
|
|
||||||
MmSetPageEntrySectionSegment(MemoryArea->Data.SectionData.Segment, (PLARGE_INTEGER)&Offset, MAKE_SWAP_SSE(MM_WAIT_ENTRY));
|
MmSetPageEntrySectionSegment(MemoryArea->SectionData.Segment, (PLARGE_INTEGER)&Offset, MAKE_SWAP_SSE(MM_WAIT_ENTRY));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Release locks now we have a page op.
|
* Release locks now we have a page op.
|
||||||
*/
|
*/
|
||||||
MmUnlockSectionSegment(MemoryArea->Data.SectionData.Segment);
|
MmUnlockSectionSegment(MemoryArea->SectionData.Segment);
|
||||||
MmUnlockAddressSpace(AddressSpace);
|
MmUnlockAddressSpace(AddressSpace);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -1043,12 +1043,12 @@ BOOLEAN MiIsPageFromCache(PMEMORY_AREA MemoryArea,
|
||||||
LONGLONG SegOffset)
|
LONGLONG SegOffset)
|
||||||
{
|
{
|
||||||
#ifndef NEWCC
|
#ifndef NEWCC
|
||||||
if (!(MemoryArea->Data.SectionData.Segment->Image.Characteristics & IMAGE_SCN_MEM_SHARED))
|
if (!(MemoryArea->SectionData.Segment->Image.Characteristics & IMAGE_SCN_MEM_SHARED))
|
||||||
{
|
{
|
||||||
PROS_SHARED_CACHE_MAP SharedCacheMap;
|
PROS_SHARED_CACHE_MAP SharedCacheMap;
|
||||||
PROS_VACB Vacb;
|
PROS_VACB Vacb;
|
||||||
SharedCacheMap = MemoryArea->Data.SectionData.Section->FileObject->SectionObjectPointer->SharedCacheMap;
|
SharedCacheMap = MemoryArea->SectionData.Section->FileObject->SectionObjectPointer->SharedCacheMap;
|
||||||
Vacb = CcRosLookupVacb(SharedCacheMap, SegOffset + MemoryArea->Data.SectionData.Segment->Image.FileOffset);
|
Vacb = CcRosLookupVacb(SharedCacheMap, SegOffset + MemoryArea->SectionData.Segment->Image.FileOffset);
|
||||||
if (Vacb)
|
if (Vacb)
|
||||||
{
|
{
|
||||||
CcRosReleaseVacb(SharedCacheMap, Vacb, Vacb->Valid, FALSE, TRUE);
|
CcRosReleaseVacb(SharedCacheMap, Vacb, Vacb->Valid, FALSE, TRUE);
|
||||||
|
@ -1106,11 +1106,11 @@ MiReadPage(PMEMORY_AREA MemoryArea,
|
||||||
BOOLEAN IsImageSection;
|
BOOLEAN IsImageSection;
|
||||||
LONGLONG Length;
|
LONGLONG Length;
|
||||||
|
|
||||||
FileObject = MemoryArea->Data.SectionData.Section->FileObject;
|
FileObject = MemoryArea->SectionData.Section->FileObject;
|
||||||
SharedCacheMap = FileObject->SectionObjectPointer->SharedCacheMap;
|
SharedCacheMap = FileObject->SectionObjectPointer->SharedCacheMap;
|
||||||
RawLength = MemoryArea->Data.SectionData.Segment->RawLength.QuadPart;
|
RawLength = MemoryArea->SectionData.Segment->RawLength.QuadPart;
|
||||||
FileOffset = SegOffset + MemoryArea->Data.SectionData.Segment->Image.FileOffset;
|
FileOffset = SegOffset + MemoryArea->SectionData.Segment->Image.FileOffset;
|
||||||
IsImageSection = MemoryArea->Data.SectionData.Section->u.Flags.Image;
|
IsImageSection = MemoryArea->SectionData.Section->u.Flags.Image;
|
||||||
|
|
||||||
ASSERT(SharedCacheMap);
|
ASSERT(SharedCacheMap);
|
||||||
|
|
||||||
|
@ -1123,7 +1123,7 @@ MiReadPage(PMEMORY_AREA MemoryArea,
|
||||||
*/
|
*/
|
||||||
if (((FileOffset % PAGE_SIZE) == 0) &&
|
if (((FileOffset % PAGE_SIZE) == 0) &&
|
||||||
((SegOffset + PAGE_SIZE <= RawLength) || !IsImageSection) &&
|
((SegOffset + PAGE_SIZE <= RawLength) || !IsImageSection) &&
|
||||||
!(MemoryArea->Data.SectionData.Segment->Image.Characteristics & IMAGE_SCN_MEM_SHARED))
|
!(MemoryArea->SectionData.Segment->Image.Characteristics & IMAGE_SCN_MEM_SHARED))
|
||||||
{
|
{
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1282,9 +1282,9 @@ MiReadPage(PMEMORY_AREA MemoryArea,
|
||||||
|
|
||||||
RtlZeroMemory(&Resources, sizeof(MM_REQUIRED_RESOURCES));
|
RtlZeroMemory(&Resources, sizeof(MM_REQUIRED_RESOURCES));
|
||||||
|
|
||||||
Resources.Context = MemoryArea->Data.SectionData.Section->FileObject;
|
Resources.Context = MemoryArea->SectionData.Section->FileObject;
|
||||||
Resources.FileOffset.QuadPart = SegOffset +
|
Resources.FileOffset.QuadPart = SegOffset +
|
||||||
MemoryArea->Data.SectionData.Segment->Image.FileOffset;
|
MemoryArea->SectionData.Segment->Image.FileOffset;
|
||||||
Resources.Consumer = MC_USER;
|
Resources.Consumer = MC_USER;
|
||||||
Resources.Amount = PAGE_SIZE;
|
Resources.Amount = PAGE_SIZE;
|
||||||
|
|
||||||
|
@ -1313,7 +1313,7 @@ MmAlterViewAttributes(PMMSUPPORT AddressSpace,
|
||||||
|
|
||||||
MemoryArea = MmLocateMemoryAreaByAddress(AddressSpace, BaseAddress);
|
MemoryArea = MmLocateMemoryAreaByAddress(AddressSpace, BaseAddress);
|
||||||
ASSERT(MemoryArea != NULL);
|
ASSERT(MemoryArea != NULL);
|
||||||
Segment = MemoryArea->Data.SectionData.Segment;
|
Segment = MemoryArea->SectionData.Segment;
|
||||||
MmLockSectionSegment(Segment);
|
MmLockSectionSegment(Segment);
|
||||||
|
|
||||||
if ((Segment->WriteCopy) &&
|
if ((Segment->WriteCopy) &&
|
||||||
|
@ -1351,7 +1351,7 @@ MmAlterViewAttributes(PMMSUPPORT AddressSpace,
|
||||||
PFN_NUMBER Page;
|
PFN_NUMBER Page;
|
||||||
|
|
||||||
Offset.QuadPart = (ULONG_PTR)Address - MA_GetStartingAddress(MemoryArea)
|
Offset.QuadPart = (ULONG_PTR)Address - MA_GetStartingAddress(MemoryArea)
|
||||||
+ MemoryArea->Data.SectionData.ViewOffset.QuadPart;
|
+ MemoryArea->SectionData.ViewOffset.QuadPart;
|
||||||
Entry = MmGetPageEntrySectionSegment(Segment, &Offset);
|
Entry = MmGetPageEntrySectionSegment(Segment, &Offset);
|
||||||
/*
|
/*
|
||||||
* An MM_WAIT_ENTRY is ok in this case... It'll just count as
|
* An MM_WAIT_ENTRY is ok in this case... It'll just count as
|
||||||
|
@ -1423,12 +1423,12 @@ MmNotPresentFaultSectionView(PMMSUPPORT AddressSpace,
|
||||||
|
|
||||||
PAddress = MM_ROUND_DOWN(Address, PAGE_SIZE);
|
PAddress = MM_ROUND_DOWN(Address, PAGE_SIZE);
|
||||||
Offset.QuadPart = (ULONG_PTR)PAddress - MA_GetStartingAddress(MemoryArea)
|
Offset.QuadPart = (ULONG_PTR)PAddress - MA_GetStartingAddress(MemoryArea)
|
||||||
+ MemoryArea->Data.SectionData.ViewOffset.QuadPart;
|
+ MemoryArea->SectionData.ViewOffset.QuadPart;
|
||||||
|
|
||||||
Segment = MemoryArea->Data.SectionData.Segment;
|
Segment = MemoryArea->SectionData.Segment;
|
||||||
Section = MemoryArea->Data.SectionData.Section;
|
Section = MemoryArea->SectionData.Section;
|
||||||
Region = MmFindRegion((PVOID)MA_GetStartingAddress(MemoryArea),
|
Region = MmFindRegion((PVOID)MA_GetStartingAddress(MemoryArea),
|
||||||
&MemoryArea->Data.SectionData.RegionListHead,
|
&MemoryArea->SectionData.RegionListHead,
|
||||||
Address, NULL);
|
Address, NULL);
|
||||||
ASSERT(Region != NULL);
|
ASSERT(Region != NULL);
|
||||||
|
|
||||||
|
@ -1442,7 +1442,7 @@ MmNotPresentFaultSectionView(PMMSUPPORT AddressSpace,
|
||||||
{
|
{
|
||||||
/* Remove it */
|
/* Remove it */
|
||||||
Status = MmAlterRegion(AddressSpace, (PVOID)MA_GetStartingAddress(MemoryArea),
|
Status = MmAlterRegion(AddressSpace, (PVOID)MA_GetStartingAddress(MemoryArea),
|
||||||
&MemoryArea->Data.SectionData.RegionListHead,
|
&MemoryArea->SectionData.RegionListHead,
|
||||||
Address, PAGE_SIZE, Region->Type, Region->Protect & ~PAGE_GUARD,
|
Address, PAGE_SIZE, Region->Type, Region->Protect & ~PAGE_GUARD,
|
||||||
MmAlterViewAttributes);
|
MmAlterViewAttributes);
|
||||||
|
|
||||||
|
@ -1844,12 +1844,12 @@ MmAccessFaultSectionView(PMMSUPPORT AddressSpace,
|
||||||
*/
|
*/
|
||||||
PAddress = MM_ROUND_DOWN(Address, PAGE_SIZE);
|
PAddress = MM_ROUND_DOWN(Address, PAGE_SIZE);
|
||||||
Offset.QuadPart = (ULONG_PTR)PAddress - MA_GetStartingAddress(MemoryArea)
|
Offset.QuadPart = (ULONG_PTR)PAddress - MA_GetStartingAddress(MemoryArea)
|
||||||
+ MemoryArea->Data.SectionData.ViewOffset.QuadPart;
|
+ MemoryArea->SectionData.ViewOffset.QuadPart;
|
||||||
|
|
||||||
Segment = MemoryArea->Data.SectionData.Segment;
|
Segment = MemoryArea->SectionData.Segment;
|
||||||
Section = MemoryArea->Data.SectionData.Section;
|
Section = MemoryArea->SectionData.Section;
|
||||||
Region = MmFindRegion((PVOID)MA_GetStartingAddress(MemoryArea),
|
Region = MmFindRegion((PVOID)MA_GetStartingAddress(MemoryArea),
|
||||||
&MemoryArea->Data.SectionData.RegionListHead,
|
&MemoryArea->SectionData.RegionListHead,
|
||||||
Address, NULL);
|
Address, NULL);
|
||||||
ASSERT(Region != NULL);
|
ASSERT(Region != NULL);
|
||||||
|
|
||||||
|
@ -1997,13 +1997,13 @@ MmPageOutSectionView(PMMSUPPORT AddressSpace,
|
||||||
/*
|
/*
|
||||||
* Get the segment and section.
|
* Get the segment and section.
|
||||||
*/
|
*/
|
||||||
Context.Segment = MemoryArea->Data.SectionData.Segment;
|
Context.Segment = MemoryArea->SectionData.Segment;
|
||||||
Context.Section = MemoryArea->Data.SectionData.Section;
|
Context.Section = MemoryArea->SectionData.Section;
|
||||||
Context.SectionEntry = Entry;
|
Context.SectionEntry = Entry;
|
||||||
Context.CallingProcess = Process;
|
Context.CallingProcess = Process;
|
||||||
|
|
||||||
Context.Offset.QuadPart = (ULONG_PTR)Address - MA_GetStartingAddress(MemoryArea)
|
Context.Offset.QuadPart = (ULONG_PTR)Address - MA_GetStartingAddress(MemoryArea)
|
||||||
+ MemoryArea->Data.SectionData.ViewOffset.QuadPart;
|
+ MemoryArea->SectionData.ViewOffset.QuadPart;
|
||||||
|
|
||||||
DirectMapped = FALSE;
|
DirectMapped = FALSE;
|
||||||
|
|
||||||
|
@ -2383,13 +2383,13 @@ MmWritePageSectionView(PMMSUPPORT AddressSpace,
|
||||||
Address = (PVOID)PAGE_ROUND_DOWN(Address);
|
Address = (PVOID)PAGE_ROUND_DOWN(Address);
|
||||||
|
|
||||||
Offset.QuadPart = (ULONG_PTR)Address - MA_GetStartingAddress(MemoryArea)
|
Offset.QuadPart = (ULONG_PTR)Address - MA_GetStartingAddress(MemoryArea)
|
||||||
+ MemoryArea->Data.SectionData.ViewOffset.QuadPart;
|
+ MemoryArea->SectionData.ViewOffset.QuadPart;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Get the segment and section.
|
* Get the segment and section.
|
||||||
*/
|
*/
|
||||||
Segment = MemoryArea->Data.SectionData.Segment;
|
Segment = MemoryArea->SectionData.Segment;
|
||||||
Section = MemoryArea->Data.SectionData.Section;
|
Section = MemoryArea->SectionData.Section;
|
||||||
IsImageSection = Section->u.Flags.Image;
|
IsImageSection = Section->u.Flags.Image;
|
||||||
|
|
||||||
FileObject = Section->FileObject;
|
FileObject = Section->FileObject;
|
||||||
|
@ -2528,7 +2528,7 @@ MmProtectSectionView(PMMSUPPORT AddressSpace,
|
||||||
Length = (ULONG)MaxLength;
|
Length = (ULONG)MaxLength;
|
||||||
|
|
||||||
Region = MmFindRegion((PVOID)MA_GetStartingAddress(MemoryArea),
|
Region = MmFindRegion((PVOID)MA_GetStartingAddress(MemoryArea),
|
||||||
&MemoryArea->Data.SectionData.RegionListHead,
|
&MemoryArea->SectionData.RegionListHead,
|
||||||
BaseAddress, NULL);
|
BaseAddress, NULL);
|
||||||
ASSERT(Region != NULL);
|
ASSERT(Region != NULL);
|
||||||
|
|
||||||
|
@ -2540,7 +2540,7 @@ MmProtectSectionView(PMMSUPPORT AddressSpace,
|
||||||
|
|
||||||
*OldProtect = Region->Protect;
|
*OldProtect = Region->Protect;
|
||||||
Status = MmAlterRegion(AddressSpace, (PVOID)MA_GetStartingAddress(MemoryArea),
|
Status = MmAlterRegion(AddressSpace, (PVOID)MA_GetStartingAddress(MemoryArea),
|
||||||
&MemoryArea->Data.SectionData.RegionListHead,
|
&MemoryArea->SectionData.RegionListHead,
|
||||||
BaseAddress, Length, Region->Type, Protect,
|
BaseAddress, Length, Region->Type, Protect,
|
||||||
MmAlterViewAttributes);
|
MmAlterViewAttributes);
|
||||||
|
|
||||||
|
@ -2559,17 +2559,17 @@ MmQuerySectionView(PMEMORY_AREA MemoryArea,
|
||||||
PMM_SECTION_SEGMENT Segment;
|
PMM_SECTION_SEGMENT Segment;
|
||||||
|
|
||||||
Region = MmFindRegion((PVOID)MA_GetStartingAddress(MemoryArea),
|
Region = MmFindRegion((PVOID)MA_GetStartingAddress(MemoryArea),
|
||||||
&MemoryArea->Data.SectionData.RegionListHead,
|
&MemoryArea->SectionData.RegionListHead,
|
||||||
Address, &RegionBaseAddress);
|
Address, &RegionBaseAddress);
|
||||||
if (Region == NULL)
|
if (Region == NULL)
|
||||||
{
|
{
|
||||||
return STATUS_UNSUCCESSFUL;
|
return STATUS_UNSUCCESSFUL;
|
||||||
}
|
}
|
||||||
|
|
||||||
Section = MemoryArea->Data.SectionData.Section;
|
Section = MemoryArea->SectionData.Section;
|
||||||
if (Section->u.Flags.Image)
|
if (Section->u.Flags.Image)
|
||||||
{
|
{
|
||||||
Segment = MemoryArea->Data.SectionData.Segment;
|
Segment = MemoryArea->SectionData.Segment;
|
||||||
Info->AllocationBase = (PUCHAR)MA_GetStartingAddress(MemoryArea) - Segment->Image.VirtualAddress;
|
Info->AllocationBase = (PUCHAR)MA_GetStartingAddress(MemoryArea) - Segment->Image.VirtualAddress;
|
||||||
Info->Type = MEM_IMAGE;
|
Info->Type = MEM_IMAGE;
|
||||||
}
|
}
|
||||||
|
@ -3899,15 +3899,15 @@ MmMapViewOfSegment(PMMSUPPORT AddressSpace,
|
||||||
|
|
||||||
ObReferenceObject((PVOID)Section);
|
ObReferenceObject((PVOID)Section);
|
||||||
|
|
||||||
MArea->Data.SectionData.Segment = Segment;
|
MArea->SectionData.Segment = Segment;
|
||||||
MArea->Data.SectionData.Section = Section;
|
MArea->SectionData.Section = Section;
|
||||||
MArea->Data.SectionData.ViewOffset.QuadPart = ViewOffset;
|
MArea->SectionData.ViewOffset.QuadPart = ViewOffset;
|
||||||
if (Section->u.Flags.Image)
|
if (Section->u.Flags.Image)
|
||||||
{
|
{
|
||||||
MArea->VadNode.u.VadFlags.VadType = VadImageMap;
|
MArea->VadNode.u.VadFlags.VadType = VadImageMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
MmInitializeRegion(&MArea->Data.SectionData.RegionListHead,
|
MmInitializeRegion(&MArea->SectionData.RegionListHead,
|
||||||
ViewSize, 0, Protect);
|
ViewSize, 0, Protect);
|
||||||
|
|
||||||
return(STATUS_SUCCESS);
|
return(STATUS_SUCCESS);
|
||||||
|
@ -3936,10 +3936,10 @@ MmFreeSectionPage(PVOID Context, MEMORY_AREA* MemoryArea, PVOID Address,
|
||||||
Address = (PVOID)PAGE_ROUND_DOWN(Address);
|
Address = (PVOID)PAGE_ROUND_DOWN(Address);
|
||||||
|
|
||||||
Offset.QuadPart = ((ULONG_PTR)Address - MA_GetStartingAddress(MemoryArea)) +
|
Offset.QuadPart = ((ULONG_PTR)Address - MA_GetStartingAddress(MemoryArea)) +
|
||||||
MemoryArea->Data.SectionData.ViewOffset.QuadPart;
|
MemoryArea->SectionData.ViewOffset.QuadPart;
|
||||||
|
|
||||||
Section = MemoryArea->Data.SectionData.Section;
|
Section = MemoryArea->SectionData.Section;
|
||||||
Segment = MemoryArea->Data.SectionData.Segment;
|
Segment = MemoryArea->SectionData.Segment;
|
||||||
|
|
||||||
Entry = MmGetPageEntrySectionSegment(Segment, &Offset);
|
Entry = MmGetPageEntrySectionSegment(Segment, &Offset);
|
||||||
while (Entry && MM_IS_WAIT_PTE(Entry))
|
while (Entry && MM_IS_WAIT_PTE(Entry))
|
||||||
|
@ -3963,7 +3963,7 @@ MmFreeSectionPage(PVOID Context, MEMORY_AREA* MemoryArea, PVOID Address,
|
||||||
if (Page == PFN_FROM_SSE(Entry) && Dirty)
|
if (Page == PFN_FROM_SSE(Entry) && Dirty)
|
||||||
{
|
{
|
||||||
#ifndef NEWCC
|
#ifndef NEWCC
|
||||||
FileObject = MemoryArea->Data.SectionData.Section->FileObject;
|
FileObject = MemoryArea->SectionData.Section->FileObject;
|
||||||
SharedCacheMap = FileObject->SectionObjectPointer->SharedCacheMap;
|
SharedCacheMap = FileObject->SectionObjectPointer->SharedCacheMap;
|
||||||
CcRosMarkDirtyFile(SharedCacheMap, Offset.QuadPart + Segment->Image.FileOffset);
|
CcRosMarkDirtyFile(SharedCacheMap, Offset.QuadPart + Segment->Image.FileOffset);
|
||||||
#endif
|
#endif
|
||||||
|
@ -4022,8 +4022,8 @@ MmUnmapViewOfSegment(PMMSUPPORT AddressSpace,
|
||||||
return(STATUS_UNSUCCESSFUL);
|
return(STATUS_UNSUCCESSFUL);
|
||||||
}
|
}
|
||||||
|
|
||||||
Section = MemoryArea->Data.SectionData.Section;
|
Section = MemoryArea->SectionData.Section;
|
||||||
Segment = MemoryArea->Data.SectionData.Segment;
|
Segment = MemoryArea->SectionData.Segment;
|
||||||
|
|
||||||
#ifdef NEWCC
|
#ifdef NEWCC
|
||||||
if (Segment->Flags & MM_DATAFILE_SEGMENT)
|
if (Segment->Flags & MM_DATAFILE_SEGMENT)
|
||||||
|
@ -4040,7 +4040,7 @@ MmUnmapViewOfSegment(PMMSUPPORT AddressSpace,
|
||||||
|
|
||||||
MmLockSectionSegment(Segment);
|
MmLockSectionSegment(Segment);
|
||||||
|
|
||||||
RegionListHead = &MemoryArea->Data.SectionData.RegionListHead;
|
RegionListHead = &MemoryArea->SectionData.RegionListHead;
|
||||||
while (!IsListEmpty(RegionListHead))
|
while (!IsListEmpty(RegionListHead))
|
||||||
{
|
{
|
||||||
CurrentEntry = RemoveHeadList(RegionListHead);
|
CurrentEntry = RemoveHeadList(RegionListHead);
|
||||||
|
@ -4103,7 +4103,7 @@ MiRosUnmapViewOfSection(IN PEPROCESS Process,
|
||||||
return STATUS_NOT_MAPPED_VIEW;
|
return STATUS_NOT_MAPPED_VIEW;
|
||||||
}
|
}
|
||||||
|
|
||||||
Section = MemoryArea->Data.SectionData.Section;
|
Section = MemoryArea->SectionData.Section;
|
||||||
|
|
||||||
if ((Section != NULL) && Section->u.Flags.Image)
|
if ((Section != NULL) && Section->u.Flags.Image)
|
||||||
{
|
{
|
||||||
|
@ -4113,7 +4113,7 @@ MiRosUnmapViewOfSection(IN PEPROCESS Process,
|
||||||
PMM_SECTION_SEGMENT SectionSegments;
|
PMM_SECTION_SEGMENT SectionSegments;
|
||||||
PMM_SECTION_SEGMENT Segment;
|
PMM_SECTION_SEGMENT Segment;
|
||||||
|
|
||||||
Segment = MemoryArea->Data.SectionData.Segment;
|
Segment = MemoryArea->SectionData.Segment;
|
||||||
ImageSectionObject = Section->ImageSection;
|
ImageSectionObject = Section->ImageSection;
|
||||||
SectionSegments = ImageSectionObject->Segments;
|
SectionSegments = ImageSectionObject->Segments;
|
||||||
NrSegments = ImageSectionObject->NrSegments;
|
NrSegments = ImageSectionObject->NrSegments;
|
||||||
|
|
Loading…
Reference in a new issue