PpmIdleCsVetoAccountingUpdateBlock
VOID __stdcall PpmIdleCsVetoAccountingUpdateBlock(
_PPM_VETO_ACCOUNTING *VetoAccounting,
UINT8 BlockMask,
UINT8 Unblocked){
unsigned __int8 CsAccountingBlocks;
unsigned __int8 v5;
__int64 v6;
unsigned int j;
_PPM_VETO_ENTRY *v8;
unsigned __int64 CsActivationTime;
unsigned __int8 v10;
unsigned __int64 v11;
unsigned int i;
_PPM_VETO_ENTRY *v13;
INT64 CurrentQpc;
CsAccountingBlocks = VetoAccounting->CsAccountingBlocks;
if( Unblocked )
{
v10 = CsAccountingBlocks & ~BlockMask;
VetoAccounting->CsAccountingBlocks = v10;
if( !v10 )
{
LODWORD(v11) = RtlGetInterruptTimePrecise(&CurrentQpc);
for( i = 0; i < VetoAccounting->PreallocatedVetoCount; ++i )
{
v13 = &VetoAccounting->PreallocatedVetoList[(unsigned __int64)i];
if( v13->LastActivationTime )
v13->CsActivationTime = v11;
}
}
}
else
{
v5 = BlockMask | CsAccountingBlocks;
VetoAccounting->CsAccountingBlocks = v5;
if( v5 == BlockMask )
{
LODWORD(v6) = RtlGetInterruptTimePrecise(&CurrentQpc);
for( j = 0; j < VetoAccounting->PreallocatedVetoCount; ++j )
{
v8 = &VetoAccounting->PreallocatedVetoList[(unsigned __int64)j];
CsActivationTime = v8->CsActivationTime;
if( CsActivationTime )
{
v8->CsActiveTime += v6 - CsActivationTime;
v8->CsActivationTime = 0i64;
}
}
}
}
}Referenced by:
PpmIdleCaptureCsVetoAccounting
PpmIdleCsVetoAccountingDeviceUpdate
PpmIdleCsVetoAccountingResiliencyUpdate
PpmIdleStartCsVetoAccounting