MiGetWsAndMakePageTablesNx
VOID __fastcall MiGetWsAndMakePageTablesNx(_BYTE *a1){
unsigned __int64 PxeSelfRef;
INT64 v2;
char *v3;
UINT8 v4;
INT64 v5;
INT64 v6;
PxeSelfRef = (unsigned __int64)MmGetPxeSelfRef();
v2 = *((_QWORD *)KeGetCurrentThread() + 23) + 1664i64;
v3 = (char *)MmGetPteBase() + ((PxeSelfRef >> 9) & 0x7FFFFFFFF8i64);
v4 = MiLockWorkingSetShared(v2);
MiLockPageTableInternal(v2, (UINT64)v3, 0i64);
v5 = MI_READ_PTE_LOCK_FREE(PxeSelfRef);
MiPerformSafePdeWrite(v6, (INT64 *)PxeSelfRef, v5, 2);
MiUnlockPageTableInternal(v2, (UINT64)v3);
MiUnlockWorkingSetShared(v2, v4);
KeFlushTb(1i64, 0);
}Referenced by:
MmInitializeHandBuiltProcess2