PopDiagTraceZoneCriticalTripPointExceeded
VOID __fastcall PopDiagTraceZoneCriticalTripPointExceeded(
_THERMAL_INFORMATION_EX *ThermalInfo,
_DEVICE_OBJECT *DeviceObject){
EVENT_DESCRIPTOR *v2;
UINT64 v5;
EVENT_DESCRIPTOR *v6;
DEVICE_OBJECT *DeviceAttachmentBaseRefWithTag;
DEVICE_OBJECT *v8;
__int64 v9;
EVENT_DESCRIPTOR *v10;
EVENT_DESCRIPTOR *v11;
if( PopDiagHandleRegistered )
{
v5 = PopDiagHandle;
if( EtwEventEnabled(PopDiagHandle, (EVENT_DESCRIPTOR *)&POP_ETW_EVENT_CRITICAL_TRIP_POINT_DIAGNOSTIC, v2)
|| EtwEventEnabled(v5, (EVENT_DESCRIPTOR *)&POP_ETW_EVENT_CRITICAL_TRIP_POINT_SYSTEM, v6) )
{
DeviceAttachmentBaseRefWithTag = IoGetDeviceAttachmentBaseRefWithTag(DeviceObject, 0x67446F50ui64);
v8 = DeviceAttachmentBaseRefWithTag;
if( DeviceAttachmentBaseRefWithTag )
v9 = *(_QWORD *)(*((_QWORD *)DeviceAttachmentBaseRefWithTag + 39) + 40i64);
else
v9 = 0i64;
if( v9 )
{
PopDiagTraceTripPointExceeded(
*(_WORD *)(v9 + 128) >> 1,
*(WCHAR **)(v9 + 136),
ThermalInfo->CriticalTripPoint / 0xA,
(EVENT_DESCRIPTOR *)&POP_ETW_EVENT_CRITICAL_TRIP_POINT_DIAGNOSTIC,
v10);
PopDiagTraceTripPointExceeded(
*(_WORD *)(v9 + 128) >> 1,
*(WCHAR **)(v9 + 136),
ThermalInfo->CriticalTripPoint / 0xA,
(EVENT_DESCRIPTOR *)&POP_ETW_EVENT_CRITICAL_TRIP_POINT_SYSTEM,
v11);
}
if( v8 )
ObfDereferenceObjectWithTag(v8, 0x67446F50ui64);
}
}
}Referenced by:
PopCheckAndHandleThermalConditions