MiWorkingSetInfoCheckPageTable

INT64 __fastcall MiWorkingSetInfoCheckPageTable(INT64 a1, UINT64 a2, INT64 a3, CHAR a4, UINT8 a5){
  unsigned int v9; 
  __int64 v10; 
  unsigned __int64 v11; 
  _MMPTE *PteBase; 
  __int64 v14[5]; 
  v9 = 0;
  v14[0] = MI_READ_PTE_LOCK_FREE(a2);
  v10 = v14[0] & 0x800;
  if( (v14[0] & 0x800) != 0 || (unsigned int)MiGetPagingFileOffset((MMPTE *)v14) )
  {
    if( (a4 & 1) != 0 )
    {
      if( v10 )
        v11 = *(_QWORD *)(a3 + 8) & 0xFFFFFFFFFF1FFFFFui64 | 0x600000;
      else
        v11 = *(_QWORD *)(a3 + 8) & 0xFFFFFFFFFF1FFFFFui64 | 0xA00000;
      *(_QWORD *)(a3 + 8) = v11;
    }
    else if( (a4 & 2) != 0 )
    {
      PteBase = MmGetPteBase();
      MiUnlockPageTableInternal(a1, (UINT64)PteBase + ((a2 >> 9) & 0x7FFFFFFFF8i64));
      MiMakeSystemAddressValid((__int64)((a2 << 25) - ((_QWORD)PteBase << 25)) >> 16, 0i64, 0i64, a5, 0);
      MiUnlockPageTableInternal(a1, a2);
      return 1;
    }
  }
  return v9;
}

Referenced by:

MiGetWorkingSetInfoList