MiForceSectionClosed
INT64 __fastcall MiForceSectionClosed(_QWORD *a1, CHAR a2){
int v3;
unsigned __int64 v5;
__int64 v6;
v3 = a2 & 1;
while( 1 )
{
v5 = ExAcquireSpinLockExclusive(&dword_140C4C6C0);
v6 = v3 ? *a1 : a1[2];
if( !v6 )
break;
if( (unsigned int)ExTryAcquireSpinLockExclusiveAtDpcLevel((INT64 *)(v6 + 72)) )
{
ExReleaseSpinLockExclusiveFromDpcLevel((INT64 *)&dword_140C4C6C0);
return 2 - (unsigned int)(MiAttemptSectionDelete(v6, v5, a2 & 4) != 0);
}
ExReleaseSpinLockExclusiveFromDpcLevel((INT64 *)&dword_140C4C6C0);
__writecr8(v5);
}
ExReleaseSpinLockExclusiveFromDpcLevel((INT64 *)&dword_140C4C6C0);
__writecr8(v5);
return 0i64;
}Referenced by:
MiCreateImageOrDataSection
MmForceSectionClosed
MmForceSectionClosedEx