PsIoRateControlOverQuotaNotify
NTSTATUS __stdcall PsIoRateControlOverQuotaNotify(INT64 a1, INT64 a2, INT64 a3, INT64 a4, INT64 a5){
int v5;
int v6;
int v7;
UINT64 UnbiasedInterruptTime;
unsigned __int8 v10;
__int64 v11;
unsigned __int64 v12;
NTSTATUS result;
v5 = a4;
v6 = a3;
v7 = a2;
if( (_DWORD)a5 )
UnbiasedInterruptTime = KiQueryUnbiasedInterruptTime(1u);
else
UnbiasedInterruptTime = 0i64;
v10 = ExAcquireSpinLockExclusive((INT64 *)(a1 + 1456));
v11 = *(_QWORD *)(a1 + 1480);
v12 = v10;
if( v5 != *(_DWORD *)(a1 + 1500) )
{
++*(_DWORD *)(a1 + 1488);
v11 *= 2i64;
}
*(_DWORD *)(a1 + 1496) = v6;
*(_QWORD *)(a1 + 1480) = v11 | (v7 != 0);
if( (_DWORD)a5 )
*(_QWORD *)(a1 + 1504) = UnbiasedInterruptTime;
ExReleaseSpinLockExclusiveFromDpcLevel((INT64 *)(a1 + 1456));
result = KiIrqlFlags;
__writecr8(v12);
return result;
}Referenced by:
IoNotifyQuotaState