28 IN uint64_t FaultBits,
29 IN uint64_t VirtualAddress,
81 gop_printf(
COLOR_RED,
"Inside MmAccessFault | FaultBits: %llx | VirtualAddress: %p | PreviousMode: %d | TrapFrame->rip: %p | Operation: %d | Irql: %d\n", (
unsigned long long)FaultBits, (
void*)(uintptr_t)VirtualAddress, PreviousMode, (
void*)(uintptr_t)TrapFrame->rip, OperationDone, PreviousIrql);
121 MMPTE TempPte = *ReferencedPte;
134 (
void*)VirtualAddress,
135 (
void*)ReferencedPte,
145 MMPTE NewPte = TempPte;
158 (
void*)VirtualAddress,
160 (
void*)OperationDone,
161 (
void*)TrapFrame->rip
252 (
void*)VirtualAddress,
254 (
void*)TrapFrame->rip,
263 (
void*)VirtualAddress,
265 (
void*)TrapFrame->rip,
274 (
void*)VirtualAddress,
276 (
void*)TrapFrame->rip,
284 (
void*)VirtualAddress,
286 (
void*)TrapFrame->rip,
NORETURN void MeBugCheckEx(IN enum _BUGCHECK_CODES BugCheckCode, IN void *BugCheckParameter1, IN void *BugCheckParameter2, IN void *BugCheckParameter3, IN void *BugCheckParameter4)
MTSTATUS MmAccessFault(IN uint64_t FaultBits, IN uint64_t VirtualAddress, IN PRIVILEGE_MODE PreviousMode, IN PTRAP_FRAME TrapFrame)
bool MmInvalidAccessAllowed(void)
void gop_printf(uint32_t color, const char *fmt,...)
#define UNREFERENCED_PARAMETER(x)
PMMPTE MiGetPdptePointer(IN uintptr_t va)
PMMPTE MiGetPdePointer(IN uintptr_t va)
PMMPTE MiGetPml4ePointer(IN uintptr_t va)
PMMPTE MiGetPtePointer(IN uintptr_t va)
void MiInvalidateTlbForVa(IN void *VirtualAddress)
@ ATTEMPTED_WRITE_TO_READONLY_MEMORY
@ PAGE_FAULT_IN_FREED_NONPAGED_POOL
@ PAGE_FAULT_IN_FREED_PAGED_POOL
FORCEINLINE IRQL MeGetCurrentIrql(void)
#define COLOR_RED
Colors definitions for easier access.
#define MI_IS_CANONICAL_ADDR(va)
FORCEINLINE void MiAtomicExchangePte(PMMPTE PtePtr, uint64_t NewPteValue)
FORCEINLINE bool MiIsValidPfn(IN PAGE_INDEX Pfn)
#define PROT_KERNEL_WRITE
enum _FAULT_OPERATION FAULT_OPERATION
FORCEINLINE FAULT_OPERATION MiRetrieveOperationFromErrorCode(uint64_t ErrorCode)
enum _PRIVILEGE_MODE PRIVILEGE_MODE
#define PPFN_TO_PHYSICAL_ADDRESS(PPFN)
#define INDEX_TO_PPFN(Index)
#define MI_WRITE_PTE(_PtePointer, _Va, _Pa, _Flags)
struct _PFN_ENTRY * PPFN_ENTRY
#define MM_IS_DEMAND_ZERO_PTE(pte)
#define MI_GUARD_PAGE_PROTECTION
#define MT_ACCESS_VIOLATION
PAGE_INDEX MiRequestPhysicalPage(IN PFN_STATE ListType)
uintptr_t MmNonPagedPoolEnd
uintptr_t MmNonPagedPoolStart
uintptr_t MmPagedPoolStart
uintptr_t MmSystemRangeStart
uintptr_t MmHighestUserAddress
FORCEINLINE PEPROCESS PsGetCurrentProcess(void)
struct _MMPTE::@172372265215056352375070220246156106027174106113::@200357034104227323320222006243127050212100105247 Hard
struct _MMPTE::@172372265215056352375070220246156106027174106113::@277354034164206104264133322054061025100052052376 Soft
union _PFN_ENTRY::@217024126340164016372152071216274230164113211246 Descriptor
struct _PFN_ENTRY::@217024126340164016372152071216274230164113211246::@301110335271023021153236134322146064331241142124 Mapping
PMMVAD MiFindVad(IN PMMVAD Root, IN uintptr_t VirtualAddress)