Data Structures |
| struct | MM_SECTION_PAGEOUT_CONTEXT |
Defines |
| #define | NDEBUG |
| #define | MmSetPageEntrySectionSegment(S, O, E) |
| #define | DIE(ARGS_) { DPRINT ARGS_; goto l_Return; } |
| #define | RTL_NUMBER_OF(ARR_) (sizeof(ARR_) / sizeof((ARR_)[0])) |
Functions |
| NTSTATUS NTAPI | MiMapViewInSystemSpace (IN PVOID Section, IN PVOID Session, OUT PVOID *MappedBase, IN OUT PSIZE_T ViewSize) |
| NTSTATUS NTAPI | MmCreateArm3Section (OUT PVOID *SectionObject, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN PLARGE_INTEGER InputMaximumSize, IN ULONG SectionPageProtection, IN ULONG AllocationAttributes, IN HANDLE FileHandle OPTIONAL, IN PFILE_OBJECT FileObject OPTIONAL) |
| NTSTATUS NTAPI | MmMapViewOfArm3Section (IN PVOID SectionObject, IN PEPROCESS Process, IN OUT PVOID *BaseAddress, IN ULONG_PTR ZeroBits, IN SIZE_T CommitSize, IN OUT PLARGE_INTEGER SectionOffset OPTIONAL, IN OUT PSIZE_T ViewSize, IN SECTION_INHERIT InheritDisposition, IN ULONG AllocationType, IN ULONG Protect) |
| | C_ASSERT (EXEFMT_LOAD_HEADER_SIZE >=sizeof(IMAGE_DOS_HEADER)) |
| | C_ASSERT (sizeof(IMAGE_NT_HEADERS32)<=sizeof(IMAGE_NT_HEADERS64)) |
| | C_ASSERT (TYPE_ALIGNMENT(IMAGE_NT_HEADERS32)==TYPE_ALIGNMENT(IMAGE_NT_HEADERS64)) |
| | C_ASSERT (RTL_SIZEOF_THROUGH_FIELD(IMAGE_NT_HEADERS32, FileHeader)==RTL_SIZEOF_THROUGH_FIELD(IMAGE_NT_HEADERS64, FileHeader)) |
| | C_ASSERT (FIELD_OFFSET(IMAGE_NT_HEADERS32, OptionalHeader)==FIELD_OFFSET(IMAGE_NT_HEADERS64, OptionalHeader)) |
| | C_ASSERT (PEFMT_FIELDS_EQUAL(IMAGE_OPTIONAL_HEADER32, IMAGE_OPTIONAL_HEADER64, Magic)) |
| | C_ASSERT (PEFMT_FIELDS_EQUAL(IMAGE_OPTIONAL_HEADER32, IMAGE_OPTIONAL_HEADER64, SectionAlignment)) |
| | C_ASSERT (PEFMT_FIELDS_EQUAL(IMAGE_OPTIONAL_HEADER32, IMAGE_OPTIONAL_HEADER64, FileAlignment)) |
| | C_ASSERT (PEFMT_FIELDS_EQUAL(IMAGE_OPTIONAL_HEADER32, IMAGE_OPTIONAL_HEADER64, Subsystem)) |
| | C_ASSERT (PEFMT_FIELDS_EQUAL(IMAGE_OPTIONAL_HEADER32, IMAGE_OPTIONAL_HEADER64, MinorSubsystemVersion)) |
| | C_ASSERT (PEFMT_FIELDS_EQUAL(IMAGE_OPTIONAL_HEADER32, IMAGE_OPTIONAL_HEADER64, MajorSubsystemVersion)) |
| | C_ASSERT (PEFMT_FIELDS_EQUAL(IMAGE_OPTIONAL_HEADER32, IMAGE_OPTIONAL_HEADER64, AddressOfEntryPoint)) |
| | C_ASSERT (PEFMT_FIELDS_EQUAL(IMAGE_OPTIONAL_HEADER32, IMAGE_OPTIONAL_HEADER64, SizeOfCode)) |
| | C_ASSERT (PEFMT_FIELDS_EQUAL(IMAGE_OPTIONAL_HEADER32, IMAGE_OPTIONAL_HEADER64, SizeOfHeaders)) |
| ACCESS_MASK NTAPI | MiArm3GetCorrectFileAccessMask (IN ACCESS_MASK SectionPageProtection) |
| NTSTATUS NTAPI | PeFmtCreateSection (IN CONST VOID *FileHeader, IN SIZE_T FileHeaderSize, IN PVOID File, OUT PMM_IMAGE_SECTION_OBJECT ImageSectionObject, OUT PULONG Flags, IN PEXEFMT_CB_READ_FILE ReadFileCb, IN PEXEFMT_CB_ALLOCATE_SEGMENTS AllocateSegmentsCb) |
| NTSTATUS | MmspWaitForFileLock (PFILE_OBJECT File) |
| VOID NTAPI | MmFreeSectionSegments (PFILE_OBJECT FileObject) |
| VOID NTAPI | MmSharePageEntrySectionSegment (PMM_SECTION_SEGMENT Segment, PLARGE_INTEGER Offset) |
| BOOLEAN NTAPI | MmUnsharePageEntrySectionSegment (PROS_SECTION_OBJECT Section, PMM_SECTION_SEGMENT Segment, PLARGE_INTEGER Offset, BOOLEAN Dirty, BOOLEAN PageOut, ULONG_PTR *InEntry) |
| BOOLEAN | MiIsPageFromCache (PMEMORY_AREA MemoryArea, ULONG SegOffset) |
| NTSTATUS NTAPI | MiCopyFromUserPage (PFN_NUMBER DestPage, PFN_NUMBER SrcPage) |
| NTSTATUS NTAPI | MiReadPage (PMEMORY_AREA MemoryArea, ULONG_PTR SegOffset, PPFN_NUMBER Page) |
| NTSTATUS NTAPI | MmNotPresentFaultSectionView (PMMSUPPORT AddressSpace, MEMORY_AREA *MemoryArea, PVOID Address, BOOLEAN Locked) |
| NTSTATUS NTAPI | MmAccessFaultSectionView (PMMSUPPORT AddressSpace, MEMORY_AREA *MemoryArea, PVOID Address) |
| VOID | MmPageOutDeleteMapping (PVOID Context, PEPROCESS Process, PVOID Address) |
| NTSTATUS NTAPI | MmPageOutSectionView (PMMSUPPORT AddressSpace, MEMORY_AREA *MemoryArea, PVOID Address, ULONG_PTR Entry) |
| NTSTATUS NTAPI | MmWritePageSectionView (PMMSUPPORT AddressSpace, PMEMORY_AREA MemoryArea, PVOID Address, ULONG PageEntry) |
| static VOID | MmAlterViewAttributes (PMMSUPPORT AddressSpace, PVOID BaseAddress, SIZE_T RegionSize, ULONG OldType, ULONG OldProtect, ULONG NewType, ULONG NewProtect) |
| NTSTATUS NTAPI | MmProtectSectionView (PMMSUPPORT AddressSpace, PMEMORY_AREA MemoryArea, PVOID BaseAddress, SIZE_T Length, ULONG Protect, PULONG OldProtect) |
| NTSTATUS NTAPI | MmQuerySectionView (PMEMORY_AREA MemoryArea, PVOID Address, PMEMORY_BASIC_INFORMATION Info, PSIZE_T ResultLength) |
| VOID NTAPI | MmpFreePageFileSegment (PMM_SECTION_SEGMENT Segment) |
| VOID NTAPI | MmpDeleteSection (PVOID ObjectBody) |
| VOID NTAPI | MmpCloseSection (IN PEPROCESS Process OPTIONAL, IN PVOID Object, IN ACCESS_MASK GrantedAccess, IN ULONG ProcessHandleCount, IN ULONG SystemHandleCount) |
| NTSTATUS INIT_FUNCTION NTAPI | MmCreatePhysicalMemorySection (VOID) |
| NTSTATUS INIT_FUNCTION NTAPI | MmInitSectionImplementation (VOID) |
| NTSTATUS NTAPI | MmCreatePageFileSection (PROS_SECTION_OBJECT *SectionObject, ACCESS_MASK DesiredAccess, POBJECT_ATTRIBUTES ObjectAttributes, PLARGE_INTEGER UMaximumSize, ULONG SectionPageProtection, ULONG AllocationAttributes) |
| NTSTATUS NTAPI | MmCreateDataFileSection (PROS_SECTION_OBJECT *SectionObject, ACCESS_MASK DesiredAccess, POBJECT_ATTRIBUTES ObjectAttributes, PLARGE_INTEGER UMaximumSize, ULONG SectionPageProtection, ULONG AllocationAttributes, HANDLE FileHandle) |
| NTSTATUS NTAPI | ElfFmtCreateSection (IN CONST VOID *FileHeader, IN SIZE_T FileHeaderSize, IN PVOID File, OUT PMM_IMAGE_SECTION_OBJECT ImageSectionObject, OUT PULONG Flags, IN PEXEFMT_CB_READ_FILE ReadFileCb, IN PEXEFMT_CB_ALLOCATE_SEGMENTS AllocateSegmentsCb) |
| static PMM_SECTION_SEGMENT NTAPI | ExeFmtpAllocateSegments (IN ULONG NrSegments) |
| static NTSTATUS NTAPI | ExeFmtpReadFile (IN PVOID File, IN PLARGE_INTEGER Offset, IN ULONG Length, OUT PVOID *Data, OUT PVOID *AllocBase, OUT PULONG ReadSize) |
| static VOID NTAPI | MmspAssertSegmentsSorted (IN PMM_IMAGE_SECTION_OBJECT ImageSectionObject) |
| static VOID NTAPI | MmspAssertSegmentsNoOverlap (IN PMM_IMAGE_SECTION_OBJECT ImageSectionObject) |
| static VOID NTAPI | MmspAssertSegmentsPageAligned (IN PMM_IMAGE_SECTION_OBJECT ImageSectionObject) |
| static int __cdecl | MmspCompareSegments (const void *x, const void *y) |
| static VOID NTAPI | MmspSortSegments (IN OUT PMM_IMAGE_SECTION_OBJECT ImageSectionObject, IN ULONG Flags) |
| static BOOLEAN NTAPI | MmspCheckSegmentBounds (IN OUT PMM_IMAGE_SECTION_OBJECT ImageSectionObject, IN ULONG Flags) |
| static BOOLEAN NTAPI | MmspPageAlignSegments (IN OUT PMM_IMAGE_SECTION_OBJECT ImageSectionObject, IN ULONG Flags) |
| NTSTATUS | ExeFmtpCreateImageSection (HANDLE FileHandle, PMM_IMAGE_SECTION_OBJECT ImageSectionObject) |
| NTSTATUS | MmCreateImageSection (PROS_SECTION_OBJECT *SectionObject, ACCESS_MASK DesiredAccess, POBJECT_ATTRIBUTES ObjectAttributes, PLARGE_INTEGER UMaximumSize, ULONG SectionPageProtection, ULONG AllocationAttributes, PFILE_OBJECT FileObject) |
| static NTSTATUS | MmMapViewOfSegment (PMMSUPPORT AddressSpace, PROS_SECTION_OBJECT Section, PMM_SECTION_SEGMENT Segment, PVOID *BaseAddress, SIZE_T ViewSize, ULONG Protect, ULONG ViewOffset, ULONG AllocationType) |
| static VOID | MmFreeSectionPage (PVOID Context, MEMORY_AREA *MemoryArea, PVOID Address, PFN_NUMBER Page, SWAPENTRY SwapEntry, BOOLEAN Dirty) |
| static NTSTATUS | MmUnmapViewOfSegment (PMMSUPPORT AddressSpace, PVOID BaseAddress) |
| NTSTATUS NTAPI | MiRosUnmapViewOfSection (IN PEPROCESS Process, IN PVOID BaseAddress, IN ULONG Flags) |
| NTSTATUS NTAPI | NtQuerySection (IN HANDLE SectionHandle, IN SECTION_INFORMATION_CLASS SectionInformationClass, OUT PVOID SectionInformation, IN SIZE_T SectionInformationLength, OUT PSIZE_T ResultLength OPTIONAL) |
| NTSTATUS NTAPI | MmMapViewOfSection (IN PVOID SectionObject, IN PEPROCESS Process, IN OUT PVOID *BaseAddress, IN ULONG_PTR ZeroBits, IN SIZE_T CommitSize, IN OUT PLARGE_INTEGER SectionOffset OPTIONAL, IN OUT PSIZE_T ViewSize, IN SECTION_INHERIT InheritDisposition, IN ULONG AllocationType, IN ULONG Protect) |
| BOOLEAN NTAPI | MmCanFileBeTruncated (IN PSECTION_OBJECT_POINTERS SectionObjectPointer, IN PLARGE_INTEGER NewFileSize) |
| BOOLEAN NTAPI | MmFlushImageSection (IN PSECTION_OBJECT_POINTERS SectionObjectPointer, IN MMFLUSH_TYPE FlushType) |
| NTSTATUS NTAPI | MmMapViewInSystemSpace (IN PVOID SectionObject, OUT PVOID *MappedBase, IN OUT PSIZE_T ViewSize) |
| NTSTATUS NTAPI | MiRosUnmapViewInSystemSpace (IN PVOID MappedBase) |
| NTSTATUS NTAPI | MmCreateSection (OUT PVOID *Section, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN PLARGE_INTEGER MaximumSize, IN ULONG SectionPageProtection, IN ULONG AllocationAttributes, IN HANDLE FileHandle OPTIONAL, IN PFILE_OBJECT FileObject OPTIONAL) |
| VOID | MmModifyAttributes (IN PMMSUPPORT AddressSpace, IN PVOID BaseAddress, IN SIZE_T RegionSize, IN ULONG OldType, IN ULONG OldProtect, IN ULONG NewType, IN ULONG NewProtect) |
| NTSTATUS NTAPI | MiRosAllocateVirtualMemory (IN HANDLE ProcessHandle, IN PEPROCESS Process, IN PMEMORY_AREA MemoryArea, IN PMMSUPPORT AddressSpace, IN OUT PVOID *UBaseAddress, IN BOOLEAN Attached, IN OUT PSIZE_T URegionSize, IN ULONG AllocationType, IN ULONG Protect) |
| NTSTATUS NTAPI | MiRosProtectVirtualMemory (IN PEPROCESS Process, IN OUT PVOID *BaseAddress, IN OUT PSIZE_T NumberOfBytesToProtect, IN ULONG NewAccessProtection, OUT PULONG OldAccessProtection OPTIONAL) |
Variables |
| MMSESSION | MmSession |
| POBJECT_TYPE | MmSectionObjectType = NULL |
| ULONG_PTR | MmSubsectionBase |
| static ULONG | SectionCharacteristicsToProtect [16] |
| static GENERIC_MAPPING | MmpSectionMapping |
| static const INFORMATION_CLASS_INFO | ExSectionInfoClass [] |
| static PEXEFMT_LOADER | ExeFmtpLoaders [] |