extern PFN_NUMBER MmMaximumNonPagedPoolInPages;
extern PFN_NUMBER MmSizeOfPagedPoolInPages;
extern PVOID MmNonPagedSystemStart;
-extern SIZE_T MiNonPagedSystemSize;
extern PVOID MmNonPagedPoolStart;
extern PVOID MmNonPagedPoolExpansionStart;
extern PVOID MmNonPagedPoolEnd;
#endif
+FORCEINLINE
+VOID
+MI_MAKE_TRANSITION_PTE(_Out_ PMMPTE NewPte,
+ _In_ PFN_NUMBER Page,
+ _In_ ULONG Protection)
+{
+ NewPte->u.Long = 0;
+ NewPte->u.Trans.Transition = 1;
+ NewPte->u.Trans.Protection = Protection;
+ NewPte->u.Trans.PageFrameNumber = Page;
+}
+
//
// Returns if the page is physically resident (ie: a large page)
// FIXFIX: CISC/x86 only?
IN ULONG Flags
);
-PVOID
-NTAPI
-MiMapLockedPagesInUserSpace(
- IN PMDL Mdl,
- IN PVOID BaseVa,
- IN MEMORY_CACHING_TYPE CacheType,
- IN PVOID BaseAddress
-);
-
-VOID
-NTAPI
-MiUnmapLockedPagesInUserSpace(
- IN PVOID BaseAddress,
- IN PMDL Mdl
-);
-
VOID
NTAPI
MiInsertPageInList(
IN ULONG ProtectionMask
);
+VOID
+NTAPI
+MiInsertVad(
+ _Inout_ PMMVAD Vad,
+ _Inout_ PMM_AVL_TABLE VadRoot);
+
NTSTATUS
NTAPI
MiInsertVadEx(
MiRosUnmapViewOfSection(
IN PEPROCESS Process,
IN PVOID BaseAddress,
- IN ULONG Flags
+ IN BOOLEAN SkipDebuggerNotify
);
VOID
IN PMMVAD Vad
);
+VOID
+NTAPI
+MiDeletePte(
+ IN PMMPTE PointerPte,
+ IN PVOID VirtualAddress,
+ IN PEPROCESS CurrentProcess,
+ IN PMMPTE PrototypePte
+);
+
ULONG
NTAPI
MiMakeSystemAddressValid(