MiFindLastSubsection
_SUBSECTION *__stdcall MiFindLastSubsection(_CONTROL_AREA *ControlArea, UINT64 ControlAreaLockHeld){
unsigned __int8 v3;
__int64 v4;
__int64 v5;
_SUBSECTION *v6;
if( (_DWORD)ControlAreaLockHeld == 1 )
v3 = 17;
else
v3 = ExAcquireSpinLockShared((INT64 *)&ControlArea->ControlAreaLock);
v4 = *(_QWORD *)&ControlArea[2].gap8[8];
v5 = 0i64;
while( v4 )
{
v5 = v4;
v4 = *(_QWORD *)(v4 + 8);
}
v6 = (_SUBSECTION *)(v5 - 56);
if( v3 != 17 )
{
ExReleaseSpinLockSharedFromDpcLevel(&ControlArea->ControlAreaLock);
__writecr8(v3);
}
return v6;
}Referenced by:
MiCanFileBeTruncatedInternal
MiComputeDataFlushRange
MiGetControlAreaPtes
MmExtendSection
MmFlushVirtualMemory