22 #define HIGH_PHYS_MASK 0x80000000 23 #define PAGE_TABLE_MASK 0x3ff 24 #define BIG_PAGE_SIZE (1<<22) 25 #define CR4_PAGE_SIZE_BIT 0x10 26 #define PDE_PRESENT_BIT 0x01 27 #define PDE_W_BIT 0x02 28 #define PDE_PWT_BIT 0x08 29 #define PDE_PCD_BIT 0x10 30 #define PDE_ACCESSED_BIT 0x20 31 #define PDE_DIRTY_BIT 0x40 32 #define PDE_PS_BIT 0x80 34 #define MI_KDBG_TMP_PAGE_1 (HYPER_SPACE + 0x400000 - PAGE_SIZE) 35 #define MI_KDBG_TMP_PAGE_0 (MI_KDBG_TMP_PAGE_1 - PAGE_SIZE) 67 return VirtAddr + (PhysAddr & (
PAGE_SIZE - 1));
130 ((Addr >> 22) *
sizeof(
ULONG));
154 *ResultAddr = (PageTableEntry & ~(
PAGE_SIZE-1)) +
static BOOLEAN KdpPhysAccess
static VOID KdpPhysWrite(ULONG_PTR PhysAddr, LONG Len, ULONGLONG Value)
VOID NTAPI KdpEnableSafeMem(VOID)
__INTRIN_INLINE unsigned long __readcr3(void)
#define MI_KDBG_TMP_PAGE_0
#define MiAddressToPte(x)
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
BOOLEAN NTAPI KdpSafeReadMemory(ULONG_PTR Addr, LONG Len, PVOID Value)
static ULONG_PTR KdpPhysMap(ULONG_PTR PhysAddr, LONG Len)
static BOOLEAN KdpTranslateAddress(ULONG_PTR Addr, PULONG_PTR ResultAddr)
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
FORCEINLINE VOID KeInvalidateTlbEntry(IN PVOID Address)
HARDWARE_PTE_ARMV6 TempPte
BOOLEAN NTAPI KdpSafeWriteMemory(ULONG_PTR Addr, LONG Len, ULONGLONG Value)
#define memcpy(s1, s2, n)
__INTRIN_INLINE unsigned long __readcr4(void)
__GNU_EXTENSION typedef unsigned __int64 * PULONGLONG
#define CR4_PAGE_SIZE_BIT
static ULONGLONG KdpPhysRead(ULONG_PTR PhysAddr, LONG Len)
#define MI_KDBG_TMP_PAGE_1