Defines |
| #define | NDEBUG |
Functions |
|
- Parameters:
-
- Returns:
- The leftmost MEMORY_AREA node (ie. the one with lowest address)
|
| static PMEMORY_AREA | MmIterateFirstNode (PMEMORY_AREA Node) |
|
- Parameters:
-
| Node | Current node in the tree. |
- Returns:
- Next node in the tree (sorted by address).
|
| static PMEMORY_AREA | MmIterateNextNode (PMEMORY_AREA Node) |
|
- Parameters:
-
- Returns:
- The rightmost MEMORY_AREA node (ie. the one with highest address)
|
| static PMEMORY_AREA | MmIterateLastNode (PMEMORY_AREA Node) |
|
- Parameters:
-
| Node | Current node in the tree. |
- Returns:
- Previous node in the tree (sorted by address).
|
| static PMEMORY_AREA | MmIteratePrevNode (PMEMORY_AREA Node) |
| PMEMORY_AREA NTAPI | MmLocateMemoryAreaByAddress (PMMSUPPORT AddressSpace, PVOID Address) |
| PMEMORY_AREA NTAPI | MmLocateMemoryAreaByRegion (PMMSUPPORT AddressSpace, PVOID Address, ULONG_PTR Length) |
|
This is helper of MmRebalanceTree. Performs a compression transformation count times, starting at root.
|
| static VOID | MmCompressHelper (PMMSUPPORT AddressSpace, ULONG Count) |
|
Rebalance a memory area tree using the Tree->Vine->Balanced Tree method described in libavl documentation in chapter 4.12. (http://www.stanford.edu/~blp/avl/libavl.html/)
|
| static VOID | MmRebalanceTree (PMMSUPPORT AddressSpace) |
| VOID NTAPI | MiInsertVad (IN PMMVAD Vad, IN PEPROCESS Process) |
| ULONG NTAPI | MiMakeProtectionMask (IN ULONG Protect) |
| static VOID | MmInsertMemoryArea (PMMSUPPORT AddressSpace, PMEMORY_AREA marea) |
| static PVOID | MmFindGapBottomUp (PMMSUPPORT AddressSpace, ULONG_PTR Length, ULONG_PTR Granularity) |
| static PVOID | MmFindGapTopDown (PMMSUPPORT AddressSpace, ULONG_PTR Length, ULONG_PTR Granularity) |
| PVOID NTAPI | MmFindGap (PMMSUPPORT AddressSpace, ULONG_PTR Length, ULONG_PTR Granularity, BOOLEAN TopDown) |
| ULONG_PTR NTAPI | MmFindGapAtAddress (PMMSUPPORT AddressSpace, PVOID Address) |
| VOID NTAPI | MiRemoveNode (IN PMMADDRESS_NODE Node, IN PMM_AVL_TABLE Table) |
|
Free an existing memory area.
- Parameters:
-
| AddressSpace | Address space to free the area from. |
| MemoryArea | Memory area we're about to free. |
| FreePage | Callback function for each freed page. |
| FreePageContext | Context passed to the callback function. |
- Returns:
- Status
|
| VOID NTAPI | MiDeletePte (IN PMMPTE PointerPte, IN PVOID VirtualAddress, IN PEPROCESS CurrentProcess, IN PMMPTE PrototypePte) |
| NTSTATUS NTAPI | MmFreeMemoryArea (PMMSUPPORT AddressSpace, PMEMORY_AREA MemoryArea, PMM_FREE_PAGE_FUNC FreePage, PVOID FreePageContext) |
|
Create a memory area.
- Parameters:
-
| AddressSpace | Address space to create the area in. |
| Type | Type of the memory area. |
| BaseAddress | Base address for the memory area we're about the create. On input it contains either 0 (auto-assign address) or preferred address. On output it contains the starting address of the newly created area. |
| Length | Length of the area to allocate. |
| Attributes | Protection attributes for the memory area. |
| Result | Receives a pointer to the memory area on successful exit. |
- Returns:
- Status
|
| NTSTATUS NTAPI | MmCreateMemoryArea (PMMSUPPORT AddressSpace, ULONG Type, PVOID *BaseAddress, ULONG_PTR Length, ULONG Protect, PMEMORY_AREA *Result, BOOLEAN FixedAddress, ULONG AllocationFlags, PHYSICAL_ADDRESS BoundaryAddressMultiple) |
| VOID NTAPI | MmMapMemoryArea (PVOID BaseAddress, SIZE_T Length, ULONG Consumer, ULONG Protection) |
| VOID NTAPI | MmDeleteProcessAddressSpace2 (IN PEPROCESS Process) |
| NTSTATUS NTAPI | MmDeleteProcessAddressSpace (PEPROCESS Process) |
Variables |
| MEMORY_AREA | MiStaticMemoryAreas [MI_STATIC_MEMORY_AREAS] |
| ULONG | MiStaticMemoryAreaCount |