MiMakeProtoLeafValid

_MMPTE *__stdcall MiMakeProtoLeafValid(ULONG_PTR PointerPte, UINT64 ProtectionMask, UINT8 WsIrql){
  VOID *v4; 
  _MMSUPPORT_FULL *p_Vm; 
  char *v6; 
  char i; 
  UINT64 v8; 
  UINT8 v9; 
  UINT64 v11; 

  v4 = *(VOID **)&PointerPte;
  p_Vm = &KeGetCurrentThread()->ApcState.Process->Vm;
  v6 = (char *)MmGetPteBase() + ((*(_QWORD *)&PointerPte >> 9) & 0x7FFFFFFFF8i64);
  for( i = MI_READ_PTE_LOCK_FREE(*(INT64 *)&PointerPte); (i & 1) == 0; i = MI_READ_PTE_LOCK_FREE((INT64)v4) )
  {
    MiUnlockPageTableInternal((INT64)p_Vm, (UINT64)v6);
    LOBYTE(v8) = WsIrql;
    MiUnlockWorkingSetShared(&p_Vm->Instance, v8);
    MiLockWorkingSetShared();
    WsIrql = v9;
    LODWORD(v11) = 0;
    MiMakeSystemAddressValid(v4, 0i64, 0i64, v9, v11);
  }
  return 0i64;
}

Referenced by:

MiProtectPrivateMemory
MiSetProtectionOnSection
MiSplitPrivatePage
MiWalkVaRange