PopThermalTraceRundownEvents
NTSTATUS __stdcall PopThermalTraceRundownEvents(UINT64 CpuSetCount, UINT64 *CpuSetMasks){
EVENT_DESCRIPTOR *v2;
PVOID *v3;
char v4;
DEVICE_OBJECT *v5;
unsigned __int8 v6;
char v7;
NTSTATUS result;
DEVICE_OBJECT *DeviceAttachmentBaseRefWithTag;
DEVICE_OBJECT *v10;
__int64 v11;
int v12;
int v13;
UINT64 UserDataCount;
__int16 v15;
__int16 v16;
int v17;
__int16 v18;
int v19;
int v20;
int v21;
__int64 v22;
EVENT_DATA_DESCRIPTOR UserData;
__int64 v24;
int v25;
int v26;
__int16 *v27;
__int64 v28;
int *v29;
__int64 v30;
int *v31;
__int64 v32;
int *v33;
__int64 v34;
int *v35;
__int64 v36;
__int64 *v37;
__int64 v38;
__int16 *v39;
__int64 v40;
PVOID v41;
int v42;
int v43;
PopAcquireRwLockShared((UINT64)&PopPolicyDeviceLock);
v3 = (PVOID *)PopThermal;
if( PopThermal != &PopThermal )
{
do
{
v4 = *((_BYTE *)v3 + 65);
if( (v4 & 2) != 0 )
{
v5 = (DEVICE_OBJECT *)v3[6];
v6 = v4 & 1;
LODWORD(v22) = *((unsigned __int8 *)v3 + 73);
v7 = v4 & 4;
v21 = *((unsigned __int8 *)v3 + 72);
v20 = *((_DWORD *)v3 + 20);
v19 = *((unsigned __int8 *)v3 + 69);
v16 = 0;
v18 = 0;
v15 = 0;
LOWORD(v17) = 0;
if( PopDiagHandleRegistered )
{
if( EtwEventEnabled(PopDiagHandle, (EVENT_DESCRIPTOR *)&POP_ETW_EVENT_THERMAL_ZONE_RUNDOWN, v2) )
{
DeviceAttachmentBaseRefWithTag = IoGetDeviceAttachmentBaseRefWithTag(v5, 0x67446F50ui64);
v10 = DeviceAttachmentBaseRefWithTag;
if( DeviceAttachmentBaseRefWithTag )
v11 = *(_QWORD *)(*((_QWORD *)DeviceAttachmentBaseRefWithTag + 39) + 40i64);
else
v11 = 0i64;
if( v11 )
{
v12 = *(_WORD *)(v11 + 128) >> 1;
UserData.Ptr = (unsigned __int64)&v15;
v15 = v12;
*(_QWORD *)&UserData.Size = 2i64;
v24 = *(_QWORD *)(v11 + 136);
v25 = 2 * v12;
v13 = *((unsigned __int16 *)v3 + 520);
v16 = v7 != 0;
v42 = v13;
v27 = &v16;
v29 = &v19;
LOWORD(v17) = v6;
v31 = &v17;
v33 = &v20;
v35 = &v21;
v37 = &v22;
v18 = (unsigned __int16)v13 >> 1;
v39 = &v18;
v41 = v3[131];
LODWORD(UserDataCount) = 10;
v26 = 0;
v28 = 2i64;
v30 = 4i64;
v32 = 2i64;
v34 = 4i64;
v36 = 4i64;
v38 = 4i64;
v40 = 2i64;
v43 = 0;
EtwWriteEx(
PopDiagHandle,
(EVENT_DESCRIPTOR *)&POP_ETW_EVENT_THERMAL_ZONE_RUNDOWN,
0i64,
0i64,
0i64,
0i64,
UserDataCount,
&UserData);
}
if( v10 )
ObfDereferenceObjectWithTag(v10, 0x67446F50ui64);
}
}
}
v3 = (PVOID *)*v3;
}
while( v3 != &PopThermal );
}
PopReleaseRwLock((UINT64)&PopPolicyDeviceLock);
return result;
}Referenced by:
PopDiagTraceControlCallback