PopDiagTraceCoolingExtension
void __fastcall PopDiagTraceCoolingExtension(__int64 a1, const _EVENT_DESCRIPTOR *a2){
_DEVICE_OBJECT *DeviceAttachmentBaseRefWithTag;
_DEVICE_OBJECT *v5;
_WORD *DeviceNode;
bool v7;
_BOOL4 v8;
_BOOL4 v9;
int v10;
char v11;
__int16 v12;
_BOOL4 v13;
_BOOL4 v14;
_BOOL4 v15;
__int64 v16;
_EVENT_DATA_DESCRIPTOR UserData;
int *v18;
__int64 v19;
char *v20;
__int64 v21;
_BOOL4 *v22;
__int64 v23;
__int64 *v24;
__int64 v25;
__int16 *v26;
__int64 v27;
__int64 v28;
int v29;
int v30;
v15 = 0;
v14 = 0;
v12 = 0;
v13 = 0;
v11 = 0;
v16 = 0i64;
if( PopDiagHandleRegistered && EtwEventEnabled(PopDiagHandle, a2) )
{
DeviceAttachmentBaseRefWithTag = IoGetDeviceAttachmentBaseRefWithTag(*(_DEVICE_OBJECT **)(a1 + 48), 0x67446F50ui64);
v5 = DeviceAttachmentBaseRefWithTag;
if( DeviceAttachmentBaseRefWithTag )
DeviceNode = DeviceAttachmentBaseRefWithTag->DeviceObjectExtension->DeviceNode;
else
DeviceNode = 0i64;
if( DeviceNode )
{
v7 = *(_QWORD *)(a1 + 128) == 0i64;
v12 = DeviceNode[64] >> 1;
v8 = !v7;
v16 = a1;
v7 = *(_QWORD *)(a1 + 136) == 0i64;
v14 = v8;
v9 = !v7;
*(_QWORD *)&UserData.Size = 4i64;
v7 = *(_BYTE *)(a1 + 65) == 0;
v13 = v9;
v19 = 4i64;
v15 = !v7;
v11 = *(_BYTE *)(a1 + 66);
UserData.Ptr = (unsigned __int64)&v13;
v18 = (int *)&v14;
v20 = &v11;
v22 = &v15;
v24 = &v16;
v26 = &v12;
v21 = 1i64;
v23 = 4i64;
v25 = 8i64;
v27 = 2i64;
v10 = (unsigned __int16)DeviceNode[64];
v28 = *((_QWORD *)DeviceNode + 17);
v29 = v10;
v30 = 0;
EtwWrite(PopDiagHandle, a2, 0, 7u, &UserData);
}
if( v5 )
ObfDereferenceObjectWithTag(v5, 0x67446F50ui64);
}
}Referenced by:
PopAssociateThermalRequest
PopCoolingExtensionPnpNotification
PopDeactiveThermalRequest
PopDisableCoolingExtension
PopRundownThermalRequests