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