Defines |
| #define | ALIGN_DOWN_BY(size, align) ((ULONG_PTR)(size) & ~((ULONG_PTR)(align) - 1)) |
| #define | ALIGN_UP_BY(size, align) (ALIGN_DOWN_BY(((ULONG_PTR)(size) + align - 1), align)) |
| #define | ALIGN_DOWN_POINTER_BY(ptr, align) ((PVOID)ALIGN_DOWN_BY(ptr, align)) |
| #define | ALIGN_UP_POINTER_BY(ptr, align) ((PVOID)ALIGN_UP_BY(ptr, align)) |
| #define | ALIGN_DOWN(size, type) ALIGN_DOWN_BY(size, sizeof(type)) |
| #define | ALIGN_UP(size, type) ALIGN_UP_BY(size, sizeof(type)) |
| #define | ALIGN_DOWN_POINTER(ptr, type) ALIGN_DOWN_POINTER_BY(ptr, sizeof(type)) |
| #define | ALIGN_UP_POINTER(ptr, type) ALIGN_UP_POINTER_BY(ptr, sizeof(type)) |
| #define | FIELD_OFFSET(type, field) ((ULONG)&(((type *)0)->field)) |
| #define | FIELD_SIZE(type, field) (sizeof(((type *)0)->field)) |
| #define | POOL_TAGGING 1 |
| #define | IF_DEBUG if (FALSE) |
| #define | BYTE_OFFSET(Va) ((ULONG) ((ULONG_PTR) (Va) & (PAGE_SIZE - 1))) |
| #define | BYTES_TO_PAGES(Size) (((Size) + PAGE_SIZE - 1) >> PAGE_SHIFT) |
| #define | PAGE_ALIGN(Va) ((PVOID) ((ULONG_PTR)(Va) & ~(PAGE_SIZE - 1))) |
| #define | ROUND_TO_PAGES(Size) (((ULONG_PTR) (Size) + PAGE_SIZE - 1) & ~(PAGE_SIZE - 1)) |
| #define | ADDRESS_AND_SIZE_TO_SPAN_PAGES(_Va, _Size) |
| #define | COMPUTE_PAGES_SPANNED(Va, Size) ADDRESS_AND_SIZE_TO_SPAN_PAGES(Va,Size) |
| #define | MmGetMdlByteCount(_Mdl) ((_Mdl)->ByteCount) |
| #define | MmGetMdlByteOffset(_Mdl) ((_Mdl)->ByteOffset) |
| #define | MmGetMdlBaseVa(Mdl) ((Mdl)->StartVa) |
| #define | MmGetMdlPfnArray(_Mdl) ((PPFN_NUMBER) ((_Mdl) + 1)) |
| #define | MmGetMdlVirtualAddress(_Mdl) ((PVOID) ((PCHAR) ((_Mdl)->StartVa) + (_Mdl)->ByteOffset)) |
| #define | MmGetProcedureAddress(Address) (Address) |
| #define | MmLockPagableCodeSection(Address) MmLockPagableDataSection(Address) |
| #define | MmGetSystemAddressForMdl(Mdl) |
| #define | MmGetSystemAddressForMdlSafe(_Mdl, _Priority) |
| #define | MmInitializeMdl(_MemoryDescriptorList, _BaseVa, _Length) |
| #define | MmPrepareMdlForReuse(_Mdl) |
Functions |
| | $if (_WDMDDK_)$endif(_WDMDDK_) $if(_NTIFS_) FORCEINLINE ULONG HEAP_MAKE_TAG_FLAGS(_In_ ULONG TagBase |
| _Must_inspect_result_ | _IRQL_requires_max_ (DISPATCH_LEVEL) _When_(return! |
| _Must_inspect_result_ | _Post_writable_byte_size_ (NumberOfBytes)) NTKERNELAPI PVOID NTAPI MmAllocateContiguousMemorySpecifyCache(_In_ SIZE_T NumberOfBytes |
| NTKERNELAPI PMDL NTAPI | MmCreateMdl (_Out_writes_bytes_opt_(sizeof(MDL)+(sizeof(PFN_NUMBER)*ADDRESS_AND_SIZE_TO_SPAN_PAGES(Base, Length))) PMDL MemoryDescriptorList, _In_reads_bytes_opt_(Length) PVOID Base, _In_ SIZE_T Length) |
| | _IRQL_requires_max_ (PASSIVE_LEVEL) NTKERNELAPI PVOID NTAPI MmGetSystemRoutineAddress(_In_ PUNICODE_STRING SystemRoutineName) |
| NTKERNELAPI LOGICAL NTAPI | MmIsDriverVerifying (_In_ struct _DRIVER_OBJECT *DriverObject) |
| _Must_inspect_result_ | _IRQL_requires_max_ (APC_LEVEL) NTKERNELAPI PVOID NTAPI MmLockPagableDataSection(_In_ PVOID AddressWithinSection) |
| _Must_inspect_result_ | _When_ (AccessMode==0, _IRQL_requires_max_(DISPATCH_LEVEL)) _When_(AccessMode |
_Must_inspect_result_
_Maybe_raises_SEH_exception_
_In_ | __drv_strictType (KPROCESSOR_MODE/enum _MODE, __drv_typeConst) KPROCESSOR_MODE AccessMode) |
| | _Post_writable_byte_size_ (MemoryDescriptorList->ByteCount) _When_(AccessMode |
| | _Field_size_bytes_opt_ (MemoryDescriptorList->ByteCount)) NTKERNELAPI VOID NTAPI MmProbeAndLockPages(_Inout_ PMDLX MemoryDescriptorList |
| NTKERNELAPI MM_SYSTEMSIZE NTAPI | MmQuerySystemSize (VOID) |
| NTKERNELAPI SIZE_T NTAPI | MmSizeOfMdl (_In_reads_bytes_opt_(Length) PVOID Base, _In_ SIZE_T Length) |
| | $endif (_WDMDDK_) $if(_NTDDK_) _IRQL_requires_max_(PASSIVE_LEVEL) NTKERNELAPI PPHYSICAL_MEMORY_RANGE NTAPI MmGetPhysicalMemoryRanges(VOID) |
| NTKERNELAPI PHYSICAL_ADDRESS NTAPI | MmGetPhysicalAddress (_In_ PVOID BaseAddress) |
| NTKERNELAPI BOOLEAN NTAPI | MmIsNonPagedSystemAddressValid (_In_ PVOID VirtualAddress) |
| NTKERNELAPI PVOID NTAPI | MmGetVirtualForPhysical (_In_ PHYSICAL_ADDRESS PhysicalAddress) |
| NTKERNELAPI BOOLEAN NTAPI | MmIsThisAnNtAsSystem (VOID) |
| _Must_inspect_result_ _In_ | __in_data_source (USER_MODE) SIZE_T Size |
| | $endif (_NTDDK_) $if(_NTIFS_) NTKERNELAPI BOOLEAN NTAPI MmIsRecursiveIoFault(VOID) |
| | $endif (_NTIFS_)$if(_WDMDDK_||_NTIFS_) $endif(_WDMDDK_||_NTIFS_) $if(_WDMDDK_) _IRQL_requires_max_(DISPATCH_LEVEL) NTKERNELAPI NTSTATUS NTAPI MmAdvanceMdl(_Inout_ PMDLX Mdl |
| _Must_inspect_result_ | _Out_writes_bytes_opt_ (NumberOfBytes)) NTKERNELAPI PVOID NTAPI MmAllocateMappingAddress(_In_ SIZE_T NumberOfBytes |
| | _In_reads_ (NumberOfLists) PREAD_LIST *ReadLists) |
Variables |
_Must_inspect_result_ _In_
PHYSICAL_ADDRESS | LowestAcceptableAddress |
_Must_inspect_result_ _In_
PHYSICAL_ADDRESS _In_
PHYSICAL_ADDRESS | HighestAcceptableAddress |
_Must_inspect_result_ _In_
PHYSICAL_ADDRESS _In_
PHYSICAL_ADDRESS _In_opt_
PHYSICAL_ADDRESS | BoundaryAddressMultiple |
_Must_inspect_result_ _In_
PHYSICAL_ADDRESS _In_
PHYSICAL_ADDRESS _In_opt_
PHYSICAL_ADDRESS _In_
MEMORY_CACHING_TYPE | CacheType |
_Must_inspect_result_ _In_
PHYSICAL_ADDRESS | HighAddress |
_Must_inspect_result_ _In_
PHYSICAL_ADDRESS _In_
PHYSICAL_ADDRESS | SkipBytes |
_Must_inspect_result_ _In_
PHYSICAL_ADDRESS _In_
PHYSICAL_ADDRESS _In_ SIZE_T | TotalBytes |
| _In_ SIZE_T | NumberOfBytes |
| _In_ KPROCESSOR_MODE | AccessMode |
_In_ KPROCESSOR_MODE _In_
LOCK_OPERATION | Operation |
| _In_ PEPROCESS | Process |
| _Inout_ PMDL | MemoryDescriptorList |
_Must_inspect_result_ _In_
PHYSICAL_ADDRESS _In_
PHYSICAL_ADDRESS _In_opt_
PHYSICAL_ADDRESS _In_
MEMORY_CACHING_TYPE _In_
NODE_REQUIREMENT | PreferredNode |
_Must_inspect_result_ _In_
SIZE_T _In_ PVOID | PageAddress |
_Must_inspect_result_
_Outptr_result_bytebuffer_
ViewSize PVOID * | MappedBase |
_Must_inspect_result_
_Outptr_result_bytebuffer_
ViewSize PVOID _Inout_ PSIZE_T | ViewSize |
_Must_inspect_result_ _In_
_In_ ULONG | ProbeMode |
| _In_ BOOLEAN | DelayClose |
| _In_ MMFLUSH_TYPE | FlushType |
| _In_opt_ PLARGE_INTEGER | NewFileSize |
| _In_ SIZE_T | Length |
| _Must_inspect_result_ _In_ ULONG | PoolTag |
| _Must_inspect_result_ _In_ ULONG | NewProtect |
| _In_ ULONG | ThunkBufferSize |
_In_ PHYSICAL_ADDRESS _In_
PHYSICAL_ADDRESS _In_ SIZE_T
_In_ MEMORY_CACHING_TYPE _In_
ULONG | Flags |
| _Inout_ PSIZE_T _In_opt_ PMDLX | NewMdl |
_Inout_ PSIZE_T _In_opt_ PMDLX
_In_ MM_ROTATE_DIRECTION | Direction |
_Inout_ PSIZE_T _In_opt_ PMDLX
_In_ MM_ROTATE_DIRECTION _In_
PMM_ROTATE_COPY_CALLBACK_FUNCTION | CopyFunction |
_Inout_ PSIZE_T _In_opt_ PMDLX
_In_ MM_ROTATE_DIRECTION _In_
PMM_ROTATE_COPY_CALLBACK_FUNCTION
_In_opt_ PVOID | Context |