MiPrepareAttachThread

NTSTATUS __stdcall MiPrepareAttachThread(_EPROCESS *Process, _MMSUPPORT_INSTANCE *Vm){
  int v2; 
  NTSTATUS result; 
  _MMSUPPORT_FLAGS Flags; 

  Flags = Vm->Flags;
  if( (Process->Flags & 0xC00) < 0xC00 )
    return 0;
  if( Vm->ExitOutswapGate )
    return 0;
  v2 = *(_DWORD *)&Vm->Flags >> 8;
  if( (v2 & 0xF0) == 0xF0 || Vm->WorkingSetSize <= 1 )
    return 0;
  result = 1;
  Flags._bf_1 = v2 & 0xF | ((v2 & 0xF0) + 16);
  Vm->Flags.u1 = Flags.u1;
  return result;
}

Referenced by:

MiSharePages
MiTrimSharedPageFromViews
MmQueryCommitReleaseState
MmReleaseCommitForMemResetPages