MiProbeLeafFrame

NTSTATUS __stdcall MiProbeLeafFrame(_MI_PROBE_PACKET *Packet){
  _MI_PROBE_PACKET *v2; 
  NTSTATUS v3; 
  NTSTATUS result; 
  unsigned __int64 v5; 
  UINT64 v6; 

  LODWORD(v6) = 0;
  v2 = Packet + 10;
  v3 = MiLockPageLeafPageTable((INT64)Packet);
  if( *(_QWORD *)v2 == ZeroPte.u.Long )
    return v3;
  while( 1 )
  {
    result = MiProbeLeafPteAccess((INT64)Packet, (UINT64)&v6);
    if( result < 0 )
      break;
    if( !(_DWORD)v6 )
    {
      v5 = *(_QWORD *)v2;
      MiPteInShadowRange((UINT64)(Packet + 10));
      *((_QWORD *)Packet + 16) = (v5 >> 12) & 0xFFFFFFFFFi64;
      MiSetProbePagesAhead((INT64)Packet);
      return 0;
    }
    if( (_DWORD)v6 != 1 )
    {
      result = MiFaultInProbeAddress(Packet);
      if( result < 0 )
      {
        ++*(&stru_140C4DB30 + 611);
        return result;
      }
    }
    v3 = MiLockPageLeafPageTable((INT64)Packet);
    if( *(_QWORD *)v2 == ZeroPte.u.Long )
      return v3;
  }
  return result;
}

Referenced by:

MmProbeAndLockSelectedPages
MmStoreProbeAndLockPages