MiUpdateControlAreaCommitCount
NTSTATUS __stdcall MiUpdateControlAreaCommitCount(INT64 a1, UINT64 a2){
INT64 *v4;
unsigned __int64 v5;
__int64 v6;
int v7;
_InterlockedExchangeAdd64(
(volatile signed __int64 *)(*(_QWORD *)(*(&stru_140C4DB30 + 267) + 8i64 * (*(_WORD *)(a1 + 60) & 0x3FF)) + 7624i64),
a2);
if( *(_QWORD *)(a1 + 64) )
{
*(_QWORD *)(*(_QWORD *)a1 + 16i64) += a2;
return 0;
}
else
{
v4 = (INT64 *)(a1 + 72);
v5 = (unsigned __int8)ExAcquireSpinLockExclusive((INT64 *)(a1 + 72));
*(_QWORD *)(a1 + 120) ^= (*(_QWORD *)(a1 + 120) ^ (*(_QWORD *)(a1 + 120) + a2)) & 0xFFFFFFFFFi64;
LODWORD(v6) = MiGetSubsectionHoldingCrossPartitionReferences(a1 + 128);
v7 = *(_DWORD *)(v6 + 48) & 0x3FFFFFFF;
ExReleaseSpinLockExclusiveFromDpcLevel(v4);
__writecr8(v5);
return v7;
}
}Referenced by:
MiChargeSegmentCommit
MiCreatePagingFileMap
MiRelocateImage
MiSetPagesModified