MiMakeProtoLeafValid

MMPTE *__stdcall MiMakeProtoLeafValid(MMPTE *PointerPte, UINT64 ProtectionMask, UINT8 WsIrql){
  INT64 v5; 
  char *v6; 
  char i; 
  v5 = *((_QWORD *)KeGetCurrentThread() + 23) + 1664i64;
  v6 = (char *)MmGetPteBase() + (((unsigned __int64)PointerPte >> 9) & 0x7FFFFFFFF8i64);
  for( i = MI_READ_PTE_LOCK_FREE((INT64)PointerPte); (i & 1) == 0; i = MI_READ_PTE_LOCK_FREE((INT64)PointerPte) )
  {
    MiUnlockPageTableInternal(v5, (UINT64)v6);
    MiUnlockWorkingSetShared(v5, WsIrql);
    WsIrql = MiLockWorkingSetShared(v5);
    MiMakeSystemAddressValid((UINT64)PointerPte, 0i64, 0i64, WsIrql, 0);
  }
  return 0i64;
}

Referenced by:

MiProtectPrivateMemory
MiSetProtectionOnSection
MiSplitPrivatePage
MiWalkVaRange