PopTraceThermalZonePassiveHistogram
CHAR __fastcall PopTraceThermalZonePassiveHistogram(INT64 a1){
DEVICE_OBJECT *DeviceAttachmentBaseRefWithTag;
DEVICE_OBJECT *v3;
__int64 v4;
const WCHAR *v5;
struct _EVENT_DATA_DESCRIPTOR v7;
_DWORD *v8;
__int64 v9;
__int64 v10;
_DWORD v11[2];
char v12[16];
int *v13;
int v14;
int v15;
__int64 *v16;
int v17;
int v18;
int v19[24];
DeviceAttachmentBaseRefWithTag = IoGetDeviceAttachmentBaseRefWithTag(*(DEVICE_OBJECT **)(a1 + 48), 0x67446F50ui64);
v3 = DeviceAttachmentBaseRefWithTag;
if( DeviceAttachmentBaseRefWithTag )
v4 = *(_QWORD *)(*((_QWORD *)DeviceAttachmentBaseRefWithTag + 39) + 40i64);
else
v4 = 0i64;
if( v4 )
{
LOBYTE(DeviceAttachmentBaseRefWithTag) = PopDiagSnapPassiveHistogram(a1 + 504, v19);
if( (_BYTE)DeviceAttachmentBaseRefWithTag || PopThermalTelemetryVerbosity )
{
DeviceAttachmentBaseRefWithTag = *(DEVICE_OBJECT **)(a1 + 1048);
if( (unsigned int)dword_140C021E8 > 5 )
{
LOBYTE(DeviceAttachmentBaseRefWithTag) = tlgKeywordOn((__int64)&dword_140C021E8, 0x400000000000i64);
if( (_BYTE)DeviceAttachmentBaseRefWithTag )
{
v11[1] = 0;
v8 = v11;
v10 = *(_QWORD *)(v4 + 136);
v11[0] = *(unsigned __int16 *)(v4 + 128);
v9 = 2i64;
tlgCreate1Sz_wchar_t((__int64)v12, v5);
v15 = 0;
v18 = 0;
v16 = PopThermalTrackingThresholds;
v13 = v19;
v14 = 84;
v17 = 21;
LOBYTE(DeviceAttachmentBaseRefWithTag) = tlgWriteTransfer_EtwWriteTransfer(
(__int64)&dword_140C021E8,
(unsigned __int8 *)&byte_1400271CF,
0i64,
0i64,
7u,
&v7);
}
}
}
}
if( v3 )
LOBYTE(DeviceAttachmentBaseRefWithTag) = ObfDereferenceObjectWithTag(v3, 0x67446F50ui64);
return(char)DeviceAttachmentBaseRefWithTag;
}Referenced by:
PopThermalSxEntry
PopThermalTelemetryWorker
PopThermalZoneRemove