MiFlushAcquire
UINT64 __stdcall MiFlushAcquire(_CONTROL_AREA *ControlArea, _SUBSECTION *Subsection, _SUBSECTION *LastSubsection){
INT64 *v3;
unsigned __int64 v7;
__int64 v8;
unsigned int v9;
v3 = (INT64 *)((char *)ControlArea + 72);
v7 = ExAcquireSpinLockExclusive((PEX_SPIN_LOCK)ControlArea + 18);
v8 = *((_QWORD *)ControlArea + 5);
if( v8 == -1 )
{
ExReleaseSpinLockExclusiveFromDpcLevel(v3);
v9 = 0;
}
else
{
if( Subsection )
{
MiReferenceSubsection(Subsection, 0i64);
MiReferenceSubsection(LastSubsection, 0i64);
v8 = *((_QWORD *)ControlArea + 5);
}
*((_QWORD *)ControlArea + 5) = v8 + 1;
ExReleaseSpinLockExclusiveFromDpcLevel(v3);
v9 = 1;
}
__writecr8(v7);
return v9;
}Referenced by:
MiAllocateVirtualMemory
MmFlushVirtualMemory