PpmPerfUpdateQosDisableReasons
CHAR __stdcall PpmPerfUpdateQosDisableReasons(INT64 *a1){
CHAR v1;
__int64 v3;
__int64 v4;
unsigned int v5;
_QWORD *v6;
int v7;
v1 = 0;
v3 = *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart;
if( !byte_140CFBDC8 )
{
v4 = *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart - PpmPerfQosDisableAccounting;
qword_140CFBD18 += *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart - PpmPerfQosDisableAccounting;
if( PpmPerfQosEnabled )
qword_140CFBD28 += v4;
v5 = 0;
v6 = &unk_140CFBD38;
do
{
v7 = PpmPerfQosDisableReasons;
if( _bittest(&v7, v5) )
*v6 += v4;
++v5;
++v6;
}
while( v5 < 9 );
}
if( a1 )
{
if( PpmPerfQosDisableReasons != *(_DWORD *)a1 || !PpmPerfQosDisableAccounting )
v1 = 1;
PpmPerfQosDisableReasons = *(_DWORD *)a1;
}
PpmPerfQosDisableAccounting = v3;
return v1;
}Referenced by:
PpmCheckPausePpmEngineForSx
PpmCheckResumePpmEngineFromSx
PpmPerfTelemetryWorker
PpmPerfUpdateDomainPolicy