PopDiagTraceThermalZoneThrottleDurationPerfTrack
VOID __stdcall PopDiagTraceThermalZoneThrottleDurationPerfTrack(UINT64 Duration, DEVICE_OBJECT *DeviceObject){
EVENT_DESCRIPTOR *v2;
DEVICE_OBJECT *DeviceAttachmentBaseRefWithTag;
DEVICE_OBJECT *v5;
__int64 v6;
int v7;
__int16 v8;
EVENT_DATA_DESCRIPTOR UserData;
__int16 *v10;
__int64 v11;
__int64 v12;
int v13;
int v14;
int v15;
v15 = Duration;
v8 = 0;
if( PopDiagHandleRegistered
&& EtwEventEnabled(PopDiagHandle, (EVENT_DESCRIPTOR *)&POP_ETW_EVENT_THERMAL_DURATION_PERFTRACK, v2) )
{
DeviceAttachmentBaseRefWithTag = IoGetDeviceAttachmentBaseRefWithTag(DeviceObject, 0x67446F50ui64);
v5 = DeviceAttachmentBaseRefWithTag;
if( DeviceAttachmentBaseRefWithTag )
v6 = *(_QWORD *)(*((_QWORD *)DeviceAttachmentBaseRefWithTag + 39) + 40i64);
else
v6 = 0i64;
if( v6 )
{
v7 = *(_WORD *)(v6 + 128) >> 1;
UserData.Ptr = (unsigned __int64)&v15;
v8 = v7;
v10 = &v8;
*(_QWORD *)&UserData.Size = 4i64;
v11 = 2i64;
v12 = *(_QWORD *)(v6 + 136);
v13 = 2 * v7;
v14 = 0;
EtwWrite(PopDiagHandle, (EVENT_DESCRIPTOR *)&POP_ETW_EVENT_THERMAL_DURATION_PERFTRACK, 0i64, 3ui64, &UserData);
}
if( v5 )
ObfDereferenceObjectWithTag(v5, 0x67446F50ui64);
}
}Referenced by:
PopThermalWorker