MiRetainSubsection

VOID __stdcall MiRetainSubsection(_SUBSECTION *Subsection){
  _CONTROL_AREA *ControlArea; 
  unsigned __int8 v3; 
  unsigned __int64 v4; 
  union {unsigned int LongFlags;_MMSECTION_FLAGS Flags;} v5; 

  ControlArea = Subsection->ControlArea;
  v3 = ExAcquireSpinLockExclusive((INT64 *)&Subsection->ControlArea->ControlAreaLock);
  ++ControlArea->NumberOfMappedViews;
  v4 = v3;
  v5.LongFlags = (unsigned int)ControlArea->u;
  if( (v5.LongFlags & 0x20) == 0 && ControlArea->FilePointer.Value && (v5.LongFlags & 0x400) == 0 )
    MiIncrementSubsectionViewCount((_MSUBSECTION *)Subsection, 4ui64);
  ExReleaseSpinLockExclusiveFromDpcLevel((INT64 *)&ControlArea->ControlAreaLock);
  __writecr8(v4);
}

Referenced by:

MiFaultGetFileExtents
MiGetHardFaultPages
MmAccessFault