PpmEventThermalCapChange
char __fastcall PpmEventThermalCapChange(__int64 a1, int a2){
bool v2;
EVENT_DESCRIPTOR *EventDescriptorAndProcessorId;
EVENT_DESCRIPTOR *v5;
EVENT_DESCRIPTOR *v6;
UINT64 v7;
LPCGUID ActivityId;
UINT64 UserDataCount;
INT64 v11;
int v12;
__int128 DataPtr;
EVENT_DATA_DESCRIPTOR EventData;
EVENT_DATA_DESCRIPTOR UserData;
int *v16;
int v17;
int v18;
LODWORD(v11) = 0;
v2 = *(_BYTE *)(a1 + 60) == 0;
v12 = a2;
DataPtr = 0i64;
if( !v2 )
{
*((_QWORD *)&DataPtr + 1) = *(_QWORD *)(a1 - 32928);
LODWORD(DataPtr) = a2;
if( (*(_WORD *)(&PerfGlobalGroupMask + 2) & 0x8000) != 0 )
{
EventData.Reserved = 0;
EventData.Ptr = (unsigned __int64)&DataPtr;
EventData.Size = 16;
LODWORD(ActivityId) = 4200450;
EtwTraceKernelEvent(&EventData, 1ui64, 0x80008000ui64, 0x1236u, (UINT64)ActivityId);
}
if( WmiThermalEventEnabled )
PpmFireWmiEvent((VOID *)(a1 - 136), (GUID *)&PPM_THERMALCONSTRAINT_GUID, 0x10ui64, &DataPtr);
}
EventDescriptorAndProcessorId = (EVENT_DESCRIPTOR *)PpmEventGetEventDescriptorAndProcessorId(
a1,
(INT64)&PPM_ETW_THERMAL_CAP_CHANGE,
(INT64)&PPM_ETW_THERMAL_CAP_CHANGE_HV,
(INT64)&v11,
(INT64)&UserData);
v6 = EventDescriptorAndProcessorId;
if( PpmEtwRegistered )
{
v7 = PpmEtwHandle;
LOBYTE(EventDescriptorAndProcessorId) = EtwEventEnabled(PpmEtwHandle, EventDescriptorAndProcessorId, v5);
if( (_BYTE)EventDescriptorAndProcessorId )
{
v18 = 0;
v16 = &v12;
v17 = 4;
LODWORD(UserDataCount) = 2;
LOBYTE(EventDescriptorAndProcessorId) = EtwWriteEx(v7, v6, 0i64, 0i64, 0i64, 0i64, UserDataCount, &UserData);
}
}
return(char)EventDescriptorAndProcessorId;
}Referenced by:
PpmRegisterPerfCap