PopDiagTraceZoneCriticalTripPointExceeded
VOID __stdcall PopDiagTraceZoneCriticalTripPointExceeded(
_THERMAL_INFORMATION_EX *ThermalInfo,
_DEVICE_OBJECT *DeviceObject){
REGHANDLE v4;
_DEVICE_OBJECT *DeviceAttachmentBaseRefWithTag;
_DEVICE_OBJECT *v6;
void *DeviceNode;
if( PopDiagHandleRegistered )
{
v4 = PopDiagHandle;
if( EtwEventEnabled(PopDiagHandle, &POP_ETW_EVENT_CRITICAL_TRIP_POINT_DIAGNOSTIC)
|| EtwEventEnabled(v4, &POP_ETW_EVENT_CRITICAL_TRIP_POINT_SYSTEM) )
{
DeviceAttachmentBaseRefWithTag = IoGetDeviceAttachmentBaseRefWithTag(DeviceObject, 0x67446F50ui64);
v6 = DeviceAttachmentBaseRefWithTag;
if( DeviceAttachmentBaseRefWithTag )
DeviceNode = DeviceAttachmentBaseRefWithTag->DeviceObjectExtension->DeviceNode;
else
DeviceNode = 0i64;
if( DeviceNode )
{
PopDiagTraceTripPointExceeded(
*((_WORD *)DeviceNode + 64) >> 1,
*((_QWORD *)DeviceNode + 17),
ThermalInfo->CriticalTripPoint / 0xA,
&POP_ETW_EVENT_CRITICAL_TRIP_POINT_DIAGNOSTIC);
PopDiagTraceTripPointExceeded(
*((_WORD *)DeviceNode + 64) >> 1,
*((_QWORD *)DeviceNode + 17),
ThermalInfo->CriticalTripPoint / 0xA,
&POP_ETW_EVENT_CRITICAL_TRIP_POINT_SYSTEM);
}
if( v6 )
ObfDereferenceObjectWithTag(v6, 0x67446F50ui64);
}
}
}Referenced by:
PopCheckAndHandleThermalConditions