101 if (PointerPde->u.Hard.Coarse.
Valid)
119 DPRINT1(
"Must create a page for: %p PDE: %p\n",
154 DPRINT1(
"PointerPte: %p\n", PointerPte);
199 TempPde.u.Hard.AsUlong = 0xDEADBEEF;
222 Pte.
u.
Hard.AsUlong = 0;
260 for (
i = 0;
i <
sizeof(Pfn) /
sizeof(Pfn[0]);
i++)
272 PageDirectory = MmCreateHyperspaceMapping(Pfn[0]);
312 MmDeleteHyperspaceMapping(PageDirectory);
333 ULONG OldPdeOffset, PdeOffset,
i;
347 for (
i = 0;
i < PageCount;
i++)
353 if (OldPdeOffset != PdeOffset)
378 OldPdeOffset = PdeOffset;
448 for (
i = 0;
i < PageCount;
i++)
487 PointerPte->
u.
Hard.AsUlong = 0;
508 if (WasDirty) *WasDirty =
FALSE;
668 (CurrentPageDirectory[
i]))
#define MiAddressToPde(x)
FORCEINLINE VOID KeArmInvalidateTlbEntry(IN PVOID Address)
BOOLEAN NTAPI MmIsPageInUse(PFN_NUMBER Page)
ULONG NTAPI MmGetPageProtect(IN PEPROCESS Process, IN PVOID Address)
NTSTATUS NTAPI MmReleasePageMemoryConsumer(ULONG Consumer, PFN_NUMBER Page)
NTSTATUS NTAPI MmRequestPageMemoryConsumer(ULONG Consumer, BOOLEAN MyWait, PPFN_NUMBER AllocatedPage)
HARDWARE_PDE_ARMV6 TempPde
#define MiGetPdeOffset(x)
VOID NTAPI MmSetPageProtect(IN PEPROCESS Process, IN PVOID Address, IN ULONG Protection)
return STATUS_NOT_IMPLEMENTED
VOID NTAPI MmInitGlobalKernelPageDirectory(VOID)
#define MiAddressToPte(x)
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
BOOLEAN NTAPI MiUnmapPageTable(IN PMMPTE PointerPde)
#define PsGetCurrentProcess
BOOLEAN NTAPI MmIsDirtyPage(IN PEPROCESS Process, IN PVOID Address)
NTSTATUS NTAPI MmCreateVirtualMapping(IN PEPROCESS Process, IN PVOID Address, IN ULONG Protection, IN PPFN_NUMBER Pages, IN ULONG PageCount)
PMMPTE NTAPI MiGetPageTableForProcess(IN PEPROCESS Process, IN PVOID Address, IN BOOLEAN Create)
#define NT_SUCCESS(StatCode)
NTSTATUS NTAPI MmCreateVirtualMappingUnsafe(IN PEPROCESS Process, IN PVOID Address, IN ULONG Protection, IN PPFN_NUMBER Pages, IN ULONG PageCount)
VOID NTAPI MmSetCleanPage(IN PEPROCESS Process, IN PVOID Address)
HARDWARE_PTE_ARMV6 TempPte
NTSTATUS NTAPI MmCreatePageFileMapping(IN PEPROCESS Process, IN PVOID Address, IN SWAPENTRY SwapEntry)
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS PhysicalAddress
NTSTATUS NTAPI MmCreateVirtualMappingInternal(IN PEPROCESS Process, IN PVOID Address, IN ULONG Protection, IN PPFN_NUMBER Pages, IN ULONG PageCount, IN BOOLEAN MarkAsMapped)
MMPTE NTAPI MiGetPageEntryForProcess(IN PEPROCESS Process, IN PVOID Address)
VOID NTAPI MiFlushTlb(IN PMMPTE PointerPte, IN PVOID Address)
VOID NTAPI MmSetDirtyPage(IN PEPROCESS Process, IN PVOID Address)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
BOOLEAN NTAPI MmIsPageSwapEntry(IN PEPROCESS Process, IN PVOID Address)
BOOLEAN NTAPI MmIsPagePresent(IN PEPROCESS Process, IN PVOID Address)
#define UNIMPLEMENTED_DBGBREAK(...)
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ PLARGE_INTEGER _In_ ULONG _In_ PFILE_OBJECT _In_ PVOID Process
VOID NTAPI MmDeleteVirtualMapping(IN PEPROCESS Process, IN PVOID Address, OUT PBOOLEAN WasDirty, OUT PPFN_NUMBER Page)
VOID NTAPI MmDeletePageFileMapping(IN PEPROCESS Process, IN PVOID Address, IN SWAPENTRY *SwapEntry)
ULONG MmGlobalKernelPageDirectory[1024]
PHYSICAL_ADDRESS NTAPI MmGetPhysicalAddress(IN PVOID Address)
#define RtlCopyMemory(Destination, Source, Length)
BOOLEAN NTAPI MmCreateProcessAddressSpace(IN ULONG MinWs, IN PEPROCESS Process, IN PULONG DirectoryTableBase)
MMPDE_HARDWARE MiArmTemplatePde
#define MmSystemRangeStart
PFN_NUMBER NTAPI MmGetPfnForProcess(IN PEPROCESS Process, IN PVOID Address)