PopDiagTraceThermalStateChange
VOID __fastcall PopDiagTraceThermalStateChange(_DEVICE_OBJECT *DeviceObject, INT64 a2, const _EVENT_DESCRIPTOR *a3){
_DEVICE_OBJECT *DeviceAttachmentBaseRefWithTag;
_DEVICE_OBJECT *v6;
_WORD *DeviceNode;
int v8;
__int16 v9;
_EVENT_DATA_DESCRIPTOR UserData;
__int64 v11;
int v12;
int v13;
int *v14;
__int64 v15;
int v16;
v16 = a2;
v9 = 0;
if( PopDiagHandleRegistered && EtwEventEnabled(PopDiagHandle, a3) )
{
DeviceAttachmentBaseRefWithTag = IoGetDeviceAttachmentBaseRefWithTag(DeviceObject, 0x67446F50ui64);
v6 = DeviceAttachmentBaseRefWithTag;
if( DeviceAttachmentBaseRefWithTag )
DeviceNode = DeviceAttachmentBaseRefWithTag->DeviceObjectExtension->DeviceNode;
else
DeviceNode = 0i64;
if( DeviceNode )
{
v8 = DeviceNode[64] >> 1;
UserData.Ptr = (unsigned __int64)&v9;
v9 = v8;
*(_QWORD *)&UserData.Size = 2i64;
v11 = *((_QWORD *)DeviceNode + 17);
v14 = &v16;
v12 = 2 * v8;
v13 = 0;
v15 = 4i64;
EtwWrite(PopDiagHandle, a3, 0, 3u, &UserData);
}
if( v6 )
ObfDereferenceObjectWithTag(v6, 0x67446F50ui64);
}
}Referenced by:
PopDiagTraceThermalOverthrottleState
PopDiagTraceThermalStandbyState