MiRemoveUnusedSubsection

VOID __stdcall MiRemoveUnusedSubsection(_MSUBSECTION *MappedSubsection){
  __int64 v2; 
  _LIST_ENTRY *p_DereferenceList; 
  _LIST_ENTRY *Flink; 
  _LIST_ENTRY *Blink; 

  v2 = *(_QWORD *)(*(&stru_140C4DB30 + 267) + 8i64 * (MappedSubsection->Core.ControlArea->u1.Flags._bf_0 & 0x3FF));
  ExAcquireSpinLockExclusiveAtDpcLevel((INT64 *)(v2 + 1344));
  p_DereferenceList = &MappedSubsection->DereferenceList;
  Flink = MappedSubsection->DereferenceList.Flink;
  if( Flink->Blink != &MappedSubsection->DereferenceList
    || (Blink = MappedSubsection->DereferenceList.Blink, Blink->Flink != p_DereferenceList) )
  {
    __fastfail(3u);
  }
  Blink->Flink = Flink;
  Flink->Blink = Blink;
  MappedSubsection->Core.u.SubsectionFlags._bf_2 &= ~8u;
  MappedSubsection->DereferenceList.Blink = &MappedSubsection->DereferenceList;
  p_DereferenceList->Flink = p_DereferenceList;
  MiReduceUnusedSubsectionCount(MappedSubsection);
  ExReleaseSpinLockExclusiveFromDpcLevel((INT64 *)(v2 + 1344));
}

Referenced by:

MiDereferenceControlAreaPfnList
MiFlushSectionInternal
MiPrepareSegmentForDeletion
MiReferenceActiveSubsection
MiReferenceSubsection
MmPurgeSection