mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 10:04:49 +00:00
[NTOSKRNL] Get rid of MM_ROS_SECTION_OBJECT
This commit is contained in:
parent
8b98ff66ea
commit
b7d988ae5b
5 changed files with 43 additions and 54 deletions
2
ntoskrnl/cache/newcc.h
vendored
2
ntoskrnl/cache/newcc.h
vendored
|
@ -6,7 +6,7 @@ typedef struct _NOCC_BCB
|
|||
PUBLIC_BCB Bcb;
|
||||
|
||||
struct _NOCC_CACHE_MAP *Map;
|
||||
PROS_SECTION_OBJECT SectionObject;
|
||||
PSECTION SectionObject;
|
||||
LARGE_INTEGER FileOffset;
|
||||
ULONG Length;
|
||||
PVOID BaseAddress;
|
||||
|
|
4
ntoskrnl/cache/section/newmm.h
vendored
4
ntoskrnl/cache/section/newmm.h
vendored
|
@ -96,7 +96,7 @@ typedef struct _MM_REQUIRED_RESOURCES
|
|||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
MmCreateCacheSection(PROS_SECTION_OBJECT *SectionObject,
|
||||
MmCreateCacheSection(PSECTION *SectionObject,
|
||||
ACCESS_MASK DesiredAccess,
|
||||
POBJECT_ATTRIBUTES ObjectAttributes,
|
||||
PLARGE_INTEGER UMaximumSize,
|
||||
|
@ -386,7 +386,7 @@ MiSwapInSectionPage(PMMSUPPORT AddressSpace,
|
|||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
MmExtendCacheSection(PROS_SECTION_OBJECT Section,
|
||||
MmExtendCacheSection(PSECTION Section,
|
||||
PLARGE_INTEGER NewSize,
|
||||
BOOLEAN ExtendFile);
|
||||
|
||||
|
|
|
@ -199,11 +199,6 @@ typedef struct _MM_IMAGE_SECTION_OBJECT
|
|||
PMM_SECTION_SEGMENT Segments;
|
||||
} MM_IMAGE_SECTION_OBJECT, *PMM_IMAGE_SECTION_OBJECT;
|
||||
|
||||
typedef struct _ROS_SECTION_OBJECT
|
||||
{
|
||||
SECTION;
|
||||
} ROS_SECTION_OBJECT, *PROS_SECTION_OBJECT;
|
||||
|
||||
#define MA_GetStartingAddress(_MemoryArea) ((_MemoryArea)->VadNode.StartingVpn << PAGE_SHIFT)
|
||||
#define MA_GetEndingAddress(_MemoryArea) (((_MemoryArea)->VadNode.EndingVpn + 1) << PAGE_SHIFT)
|
||||
|
||||
|
@ -219,7 +214,7 @@ typedef struct _MEMORY_AREA
|
|||
|
||||
struct
|
||||
{
|
||||
PROS_SECTION_OBJECT Section;
|
||||
PSECTION Section;
|
||||
LARGE_INTEGER ViewOffset;
|
||||
PMM_SECTION_SEGMENT Segment;
|
||||
LIST_ENTRY RegionListHead;
|
||||
|
|
|
@ -1655,14 +1655,12 @@ MiGetFileObjectForSectionAddress(
|
|||
if (Vad->u.VadFlags.Spare != 0)
|
||||
{
|
||||
PMEMORY_AREA MemoryArea = (PMEMORY_AREA)Vad;
|
||||
PROS_SECTION_OBJECT Section;
|
||||
|
||||
/* Check if it's a section view (RosMm section) */
|
||||
if (MemoryArea->Type == MEMORY_AREA_SECTION_VIEW)
|
||||
{
|
||||
/* Get the section pointer to the SECTION_OBJECT */
|
||||
Section = MemoryArea->SectionData.Section;
|
||||
*FileObject = ((PMM_SECTION_SEGMENT)Section->Segment)->FileObject;
|
||||
*FileObject = MemoryArea->SectionData.Segment->FileObject;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1732,14 +1730,12 @@ MiGetFileObjectForVad(
|
|||
if (Vad->u.VadFlags.Spare != 0)
|
||||
{
|
||||
PMEMORY_AREA MemoryArea = (PMEMORY_AREA)Vad;
|
||||
PROS_SECTION_OBJECT Section;
|
||||
|
||||
/* Check if it's a section view (RosMm section) */
|
||||
if (MemoryArea->Type == MEMORY_AREA_SECTION_VIEW)
|
||||
{
|
||||
/* Get the section pointer to the SECTION_OBJECT */
|
||||
Section = MemoryArea->SectionData.Section;
|
||||
FileObject = ((PMM_SECTION_SEGMENT)Section->Segment)->FileObject;
|
||||
FileObject = MemoryArea->SectionData.Segment->FileObject;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -3840,7 +3836,7 @@ NtExtendSection(IN HANDLE SectionHandle,
|
|||
IN OUT PLARGE_INTEGER NewMaximumSize)
|
||||
{
|
||||
LARGE_INTEGER SafeNewMaximumSize;
|
||||
PROS_SECTION_OBJECT Section;
|
||||
PSECTION Section;
|
||||
NTSTATUS Status;
|
||||
KPROCESSOR_MODE PreviousMode = ExGetPreviousMode();
|
||||
|
||||
|
|
|
@ -138,7 +138,7 @@ C_ASSERT(PEFMT_FIELDS_EQUAL(IMAGE_OPTIONAL_HEADER32, IMAGE_OPTIONAL_HEADER64, Si
|
|||
|
||||
typedef struct
|
||||
{
|
||||
PROS_SECTION_OBJECT Section;
|
||||
PSECTION Section;
|
||||
PMM_SECTION_SEGMENT Segment;
|
||||
LARGE_INTEGER Offset;
|
||||
BOOLEAN WasDirty;
|
||||
|
@ -899,7 +899,7 @@ MmSharePageEntrySectionSegment(PMM_SECTION_SEGMENT Segment,
|
|||
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
MmUnsharePageEntrySectionSegment(PROS_SECTION_OBJECT Section,
|
||||
MmUnsharePageEntrySectionSegment(PSECTION Section,
|
||||
PMM_SECTION_SEGMENT Segment,
|
||||
PLARGE_INTEGER Offset,
|
||||
BOOLEAN Dirty,
|
||||
|
@ -1389,7 +1389,7 @@ MmNotPresentFaultSectionView(PMMSUPPORT AddressSpace,
|
|||
LARGE_INTEGER Offset;
|
||||
PFN_NUMBER Page;
|
||||
NTSTATUS Status;
|
||||
PROS_SECTION_OBJECT Section;
|
||||
PSECTION Section;
|
||||
PMM_SECTION_SEGMENT Segment;
|
||||
ULONG_PTR Entry;
|
||||
ULONG_PTR Entry1;
|
||||
|
@ -1812,7 +1812,7 @@ MmAccessFaultSectionView(PMMSUPPORT AddressSpace,
|
|||
PVOID Address)
|
||||
{
|
||||
PMM_SECTION_SEGMENT Segment;
|
||||
PROS_SECTION_OBJECT Section;
|
||||
PSECTION Section;
|
||||
PFN_NUMBER OldPage;
|
||||
PFN_NUMBER NewPage;
|
||||
NTSTATUS Status;
|
||||
|
@ -1955,7 +1955,7 @@ MmPageOutDeleteMapping(PVOID Context, PEPROCESS Process, PVOID Address)
|
|||
if (!PageOutContext->Private)
|
||||
{
|
||||
MmLockSectionSegment(PageOutContext->Segment);
|
||||
MmUnsharePageEntrySectionSegment((PROS_SECTION_OBJECT)PageOutContext->Section,
|
||||
MmUnsharePageEntrySectionSegment(PageOutContext->Section,
|
||||
PageOutContext->Segment,
|
||||
&PageOutContext->Offset,
|
||||
PageOutContext->WasDirty,
|
||||
|
@ -2367,7 +2367,7 @@ MmWritePageSectionView(PMMSUPPORT AddressSpace,
|
|||
ULONG PageEntry)
|
||||
{
|
||||
LARGE_INTEGER Offset;
|
||||
PROS_SECTION_OBJECT Section;
|
||||
PSECTION Section;
|
||||
PMM_SECTION_SEGMENT Segment;
|
||||
PFN_NUMBER Page;
|
||||
SWAPENTRY SwapEntry;
|
||||
|
@ -2557,7 +2557,7 @@ MmQuerySectionView(PMEMORY_AREA MemoryArea,
|
|||
{
|
||||
PMM_REGION Region;
|
||||
PVOID RegionBaseAddress;
|
||||
PROS_SECTION_OBJECT Section;
|
||||
PSECTION Section;
|
||||
PMM_SECTION_SEGMENT Segment;
|
||||
|
||||
Region = MmFindRegion((PVOID)MA_GetStartingAddress(MemoryArea),
|
||||
|
@ -2635,7 +2635,7 @@ MmpFreePageFileSegment(PMM_SECTION_SEGMENT Segment)
|
|||
VOID NTAPI
|
||||
MmpDeleteSection(PVOID ObjectBody)
|
||||
{
|
||||
PROS_SECTION_OBJECT Section = ObjectBody;
|
||||
PSECTION Section = ObjectBody;
|
||||
|
||||
/* Check if it's an ARM3, or ReactOS section */
|
||||
if (!MiIsRosSectionObject(Section))
|
||||
|
@ -2739,7 +2739,7 @@ NTSTATUS
|
|||
NTAPI
|
||||
MmCreatePhysicalMemorySection(VOID)
|
||||
{
|
||||
PROS_SECTION_OBJECT PhysSection;
|
||||
PSECTION PhysSection;
|
||||
NTSTATUS Status;
|
||||
OBJECT_ATTRIBUTES Obj;
|
||||
UNICODE_STRING Name = RTL_CONSTANT_STRING(L"\\Device\\PhysicalMemory");
|
||||
|
@ -2764,7 +2764,7 @@ MmCreatePhysicalMemorySection(VOID)
|
|||
&Obj,
|
||||
ExGetPreviousMode(),
|
||||
NULL,
|
||||
sizeof(ROS_SECTION_OBJECT),
|
||||
sizeof(*PhysSection),
|
||||
0,
|
||||
0,
|
||||
(PVOID*)&PhysSection);
|
||||
|
@ -2777,7 +2777,7 @@ MmCreatePhysicalMemorySection(VOID)
|
|||
/*
|
||||
* Initialize it
|
||||
*/
|
||||
RtlZeroMemory(PhysSection, sizeof(ROS_SECTION_OBJECT));
|
||||
RtlZeroMemory(PhysSection, sizeof(*PhysSection));
|
||||
|
||||
/* Mark this as a "ROS Section" */
|
||||
PhysSection->u.Flags.filler = 1;
|
||||
|
@ -2838,7 +2838,7 @@ MmInitSectionImplementation(VOID)
|
|||
RtlZeroMemory(&ObjectTypeInitializer, sizeof(ObjectTypeInitializer));
|
||||
RtlInitUnicodeString(&Name, L"Section");
|
||||
ObjectTypeInitializer.Length = sizeof(ObjectTypeInitializer);
|
||||
ObjectTypeInitializer.DefaultPagedPoolCharge = sizeof(ROS_SECTION_OBJECT);
|
||||
ObjectTypeInitializer.DefaultPagedPoolCharge = sizeof(SECTION);
|
||||
ObjectTypeInitializer.PoolType = PagedPool;
|
||||
ObjectTypeInitializer.UseDefaultObject = TRUE;
|
||||
ObjectTypeInitializer.GenericMapping = MmpSectionMapping;
|
||||
|
@ -2855,7 +2855,7 @@ MmInitSectionImplementation(VOID)
|
|||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
MmCreateDataFileSection(PROS_SECTION_OBJECT *SectionObject,
|
||||
MmCreateDataFileSection(PSECTION *SectionObject,
|
||||
ACCESS_MASK DesiredAccess,
|
||||
POBJECT_ATTRIBUTES ObjectAttributes,
|
||||
PLARGE_INTEGER UMaximumSize,
|
||||
|
@ -2866,7 +2866,7 @@ MmCreateDataFileSection(PROS_SECTION_OBJECT *SectionObject,
|
|||
* Create a section backed by a data file
|
||||
*/
|
||||
{
|
||||
PROS_SECTION_OBJECT Section;
|
||||
PSECTION Section;
|
||||
NTSTATUS Status;
|
||||
LARGE_INTEGER MaximumSize;
|
||||
PMM_SECTION_SEGMENT Segment;
|
||||
|
@ -2881,7 +2881,7 @@ MmCreateDataFileSection(PROS_SECTION_OBJECT *SectionObject,
|
|||
ObjectAttributes,
|
||||
ExGetPreviousMode(),
|
||||
NULL,
|
||||
sizeof(ROS_SECTION_OBJECT),
|
||||
sizeof(*Section),
|
||||
0,
|
||||
0,
|
||||
(PVOID*)&Section);
|
||||
|
@ -2893,7 +2893,7 @@ MmCreateDataFileSection(PROS_SECTION_OBJECT *SectionObject,
|
|||
/*
|
||||
* Initialize it
|
||||
*/
|
||||
RtlZeroMemory(Section, sizeof(ROS_SECTION_OBJECT));
|
||||
RtlZeroMemory(Section, sizeof(*Section));
|
||||
|
||||
/* Mark this as a "ROS" section */
|
||||
Section->u.Flags.filler = 1;
|
||||
|
@ -3682,7 +3682,7 @@ ExeFmtpCreateImageSection(PFILE_OBJECT FileObject,
|
|||
}
|
||||
|
||||
NTSTATUS
|
||||
MmCreateImageSection(PROS_SECTION_OBJECT *SectionObject,
|
||||
MmCreateImageSection(PSECTION *SectionObject,
|
||||
ACCESS_MASK DesiredAccess,
|
||||
POBJECT_ATTRIBUTES ObjectAttributes,
|
||||
PLARGE_INTEGER UMaximumSize,
|
||||
|
@ -3690,7 +3690,7 @@ MmCreateImageSection(PROS_SECTION_OBJECT *SectionObject,
|
|||
ULONG AllocationAttributes,
|
||||
PFILE_OBJECT FileObject)
|
||||
{
|
||||
PROS_SECTION_OBJECT Section;
|
||||
PSECTION Section;
|
||||
NTSTATUS Status;
|
||||
PMM_SECTION_SEGMENT SectionSegments;
|
||||
PMM_IMAGE_SECTION_OBJECT ImageSectionObject;
|
||||
|
@ -3715,7 +3715,7 @@ MmCreateImageSection(PROS_SECTION_OBJECT *SectionObject,
|
|||
ObjectAttributes,
|
||||
ExGetPreviousMode(),
|
||||
NULL,
|
||||
sizeof(ROS_SECTION_OBJECT),
|
||||
sizeof(*Section),
|
||||
0,
|
||||
0,
|
||||
(PVOID*)(PVOID)&Section);
|
||||
|
@ -3728,7 +3728,7 @@ MmCreateImageSection(PROS_SECTION_OBJECT *SectionObject,
|
|||
/*
|
||||
* Initialize it
|
||||
*/
|
||||
RtlZeroMemory(Section, sizeof(ROS_SECTION_OBJECT));
|
||||
RtlZeroMemory(Section, sizeof(*Section));
|
||||
|
||||
/* Mark this as a "ROS" Section */
|
||||
Section->u.Flags.filler = 1;
|
||||
|
@ -3858,7 +3858,7 @@ MmCreateImageSection(PROS_SECTION_OBJECT *SectionObject,
|
|||
|
||||
static NTSTATUS
|
||||
MmMapViewOfSegment(PMMSUPPORT AddressSpace,
|
||||
PROS_SECTION_OBJECT Section,
|
||||
PSECTION Section,
|
||||
PMM_SECTION_SEGMENT Segment,
|
||||
PVOID* BaseAddress,
|
||||
SIZE_T ViewSize,
|
||||
|
@ -3944,7 +3944,7 @@ MmFreeSectionPage(PVOID Context, MEMORY_AREA* MemoryArea, PVOID Address,
|
|||
#endif
|
||||
LARGE_INTEGER Offset;
|
||||
SWAPENTRY SavedSwapEntry;
|
||||
PROS_SECTION_OBJECT Section;
|
||||
PSECTION Section;
|
||||
PMM_SECTION_SEGMENT Segment;
|
||||
PMMSUPPORT AddressSpace;
|
||||
PEPROCESS Process;
|
||||
|
@ -4028,7 +4028,7 @@ MmUnmapViewOfSegment(PMMSUPPORT AddressSpace,
|
|||
{
|
||||
NTSTATUS Status;
|
||||
PMEMORY_AREA MemoryArea;
|
||||
PROS_SECTION_OBJECT Section;
|
||||
PSECTION Section;
|
||||
PMM_SECTION_SEGMENT Segment;
|
||||
PLIST_ENTRY CurrentEntry;
|
||||
PMM_REGION CurrentRegion;
|
||||
|
@ -4095,7 +4095,7 @@ MiRosUnmapViewOfSection(IN PEPROCESS Process,
|
|||
NTSTATUS Status;
|
||||
PMEMORY_AREA MemoryArea;
|
||||
PMMSUPPORT AddressSpace;
|
||||
PROS_SECTION_OBJECT Section;
|
||||
PSECTION Section;
|
||||
PVOID ImageBaseAddress = 0;
|
||||
|
||||
DPRINT("Opening memory area Process %p BaseAddress %p\n",
|
||||
|
@ -4281,8 +4281,6 @@ NtQuerySection(
|
|||
|
||||
if (MiIsRosSectionObject(Section))
|
||||
{
|
||||
PROS_SECTION_OBJECT RosSection = (PROS_SECTION_OBJECT)Section;
|
||||
|
||||
switch (SectionInformationClass)
|
||||
{
|
||||
case SectionBasicInformation:
|
||||
|
@ -4292,22 +4290,22 @@ NtQuerySection(
|
|||
_SEH2_TRY
|
||||
{
|
||||
Sbi->Attributes = 0;
|
||||
if (RosSection->u.Flags.Image)
|
||||
if (Section->u.Flags.Image)
|
||||
Sbi->Attributes |= SEC_IMAGE;
|
||||
if (RosSection->u.Flags.File)
|
||||
if (Section->u.Flags.File)
|
||||
Sbi->Attributes |= SEC_FILE;
|
||||
if (RosSection->u.Flags.NoChange)
|
||||
if (Section->u.Flags.NoChange)
|
||||
Sbi->Attributes |= SEC_NO_CHANGE;
|
||||
|
||||
if (RosSection->u.Flags.Image)
|
||||
if (Section->u.Flags.Image)
|
||||
{
|
||||
Sbi->BaseAddress = 0;
|
||||
Sbi->Size.QuadPart = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
Sbi->BaseAddress = (PVOID)((PMM_SECTION_SEGMENT)RosSection->Segment)->Image.VirtualAddress;
|
||||
Sbi->Size.QuadPart = ((PMM_SECTION_SEGMENT)RosSection->Segment)->Length.QuadPart;
|
||||
Sbi->BaseAddress = (PVOID)((PMM_SECTION_SEGMENT)Section->Segment)->Image.VirtualAddress;
|
||||
Sbi->Size.QuadPart = ((PMM_SECTION_SEGMENT)Section->Segment)->Length.QuadPart;
|
||||
}
|
||||
|
||||
if (ResultLength != NULL)
|
||||
|
@ -4331,7 +4329,7 @@ NtQuerySection(
|
|||
|
||||
_SEH2_TRY
|
||||
{
|
||||
if (RosSection->u.Flags.Image)
|
||||
if (Section->u.Flags.Image)
|
||||
{
|
||||
PMM_IMAGE_SECTION_OBJECT ImageSectionObject = ((PMM_IMAGE_SECTION_OBJECT)Section->Segment);
|
||||
|
||||
|
@ -4474,7 +4472,7 @@ MmMapViewOfSection(IN PVOID SectionObject,
|
|||
IN ULONG AllocationType,
|
||||
IN ULONG Protect)
|
||||
{
|
||||
PROS_SECTION_OBJECT Section;
|
||||
PSECTION Section;
|
||||
PMMSUPPORT AddressSpace;
|
||||
ULONG ViewOffset;
|
||||
NTSTATUS Status = STATUS_SUCCESS;
|
||||
|
@ -4505,7 +4503,7 @@ MmMapViewOfSection(IN PVOID SectionObject,
|
|||
/* FIXME: We should keep this, but it would break code checking equality */
|
||||
Protect &= ~PAGE_NOCACHE;
|
||||
|
||||
Section = (PROS_SECTION_OBJECT)SectionObject;
|
||||
Section = SectionObject;
|
||||
AddressSpace = &Process->Vm;
|
||||
|
||||
if (Section->u.Flags.NoChange)
|
||||
|
@ -4815,7 +4813,7 @@ MmMapViewInSystemSpace (IN PVOID SectionObject,
|
|||
OUT PVOID * MappedBase,
|
||||
IN OUT PSIZE_T ViewSize)
|
||||
{
|
||||
PROS_SECTION_OBJECT Section;
|
||||
PSECTION Section;
|
||||
PMM_SECTION_SEGMENT Segment;
|
||||
PMMSUPPORT AddressSpace;
|
||||
NTSTATUS Status;
|
||||
|
@ -4831,7 +4829,7 @@ MmMapViewInSystemSpace (IN PVOID SectionObject,
|
|||
|
||||
DPRINT("MmMapViewInSystemSpace() called\n");
|
||||
|
||||
Section = (PROS_SECTION_OBJECT)SectionObject;
|
||||
Section = SectionObject;
|
||||
Segment = (PMM_SECTION_SEGMENT)Section->Segment;
|
||||
|
||||
AddressSpace = MmGetKernelAddressSpace();
|
||||
|
@ -4953,7 +4951,7 @@ MmCreateSection (OUT PVOID * Section,
|
|||
{
|
||||
NTSTATUS Status;
|
||||
ULONG Protection;
|
||||
PROS_SECTION_OBJECT *SectionObject = (PROS_SECTION_OBJECT *)Section;
|
||||
PSECTION *SectionObject = (PSECTION *)Section;
|
||||
|
||||
/* Check if an ARM3 section is being created instead */
|
||||
if (!(AllocationAttributes & (SEC_IMAGE | SEC_PHYSICALMEMORY)))
|
||||
|
|
Loading…
Reference in a new issue