PopDiagTraceThermalStateChange
VOID __stdcall PopDiagTraceThermalStateChange(
DEVICE_OBJECT *DeviceObject,
INT64 Engaged,
EVENT_DESCRIPTOR *EventDescriptor,
EVENT_DESCRIPTOR *a4){
DEVICE_OBJECT *DeviceAttachmentBaseRefWithTag;
DEVICE_OBJECT *v7;
__int64 v8;
int v9;
__int16 v10;
EVENT_DATA_DESCRIPTOR UserData;
__int64 v12;
int v13;
int v14;
int *v15;
__int64 v16;
int v17;
v17 = Engaged;
v10 = 0;
if( PopDiagHandleRegistered && EtwEventEnabled(PopDiagHandle, EventDescriptor, EventDescriptor) )
{
DeviceAttachmentBaseRefWithTag = IoGetDeviceAttachmentBaseRefWithTag(DeviceObject, 0x67446F50ui64);
v7 = DeviceAttachmentBaseRefWithTag;
if( DeviceAttachmentBaseRefWithTag )
v8 = *(_QWORD *)(*((_QWORD *)DeviceAttachmentBaseRefWithTag + 39) + 40i64);
else
v8 = 0i64;
if( v8 )
{
v9 = *(_WORD *)(v8 + 128) >> 1;
UserData.Ptr = (unsigned __int64)&v10;
v10 = v9;
*(_QWORD *)&UserData.Size = 2i64;
v12 = *(_QWORD *)(v8 + 136);
v15 = &v17;
v13 = 2 * v9;
v14 = 0;
v16 = 4i64;
EtwWrite(PopDiagHandle, EventDescriptor, 0i64, 3ui64, &UserData);
}
if( v7 )
ObfDereferenceObjectWithTag(v7, 0x67446F50ui64);
}
}Referenced by:
PopDiagTraceThermalOverthrottleState
PopDiagTraceThermalStandbyState