PopDiagTraceCsDripsWatchdogPerfTrack
VOID __stdcall PopDiagTraceCsDripsWatchdogPerfTrack(
UINT64 ResiliencyPhaseNoActivatorsNoDripsMs,
UINT64 NonActivatedCpuTimeMs,
UINT64 DurationThisPeriodMs,
UINT64 OnAc,
UINT64 EnergyDrain,
UINT8 DeviceConstraINT,
UINT8 ActionsTaken){
int v7;
int v8;
int v9;
int v10;
__int16 v11;
int v12;
__int64 v13;
$AC492906E908F75CD234F2140A5AAD56 *v14;
int *v15;
UINT64 UserDataCount;
int v17[3];
int v18;
EVENT_DATA_DESCRIPTOR UserData;
v18 = 0;
v7 = OnAc;
v8 = DurationThisPeriodMs;
v9 = NonActivatedCpuTimeMs;
v10 = ResiliencyPhaseNoActivatorsNoDripsMs;
if( PopDiagHandleRegistered
&& EtwEventEnabled(
PopDiagHandle,
(EVENT_DESCRIPTOR *)&POP_ETW_EVENT_CS_DRIPS_WATCHDOG_PERFTRACK,
(EVENT_DESCRIPTOR *)DurationThisPeriodMs) )
{
v17[0] = v10;
v17[1] = v9;
v17[2] = v8;
if( DeviceConstraINT )
v11 = (v7 != 0) | 0x200;
else
v11 = v7 != 0;
v12 = 0xFFFF;
v13 = 4i64;
if( (unsigned int)EnergyDrain <= 0xFFFF )
v12 = EnergyDrain;
v14 = &UserData.12;
v18 = v11 & 0x201 | (2 * ActionsTaken) & 0x3FF | (4 * (ActionsTaken & 0x100 | (v12 << 14)));
v15 = v17;
do
{
v14->Reserved = 0;
*(_QWORD *)&v14[-3].Reserved = v15++;
v14[-1].Reserved = 4;
v14 += 4;
--v13;
}
while( v13 );
LODWORD(UserDataCount) = 4;
EtwWriteEx(
PopDiagHandle,
(EVENT_DESCRIPTOR *)&POP_ETW_EVENT_CS_DRIPS_WATCHDOG_PERFTRACK,
0i64,
0i64,
0i64,
0i64,
UserDataCount,
&UserData);
}
}Referenced by:
PopDripsWatchdogTakeAction