KiIntSteerLogStatus
VOID __stdcall KiIntSteerLogStatus(UINT8 Rundown){
const _EVENT_DESCRIPTOR *v2;
const _EVENT_DESCRIPTOR *v3;
const _EVENT_DESCRIPTOR *v4;
int v5;
__int64 *v6;
ULONG_PTR *i;
__int64 *j;
UINT64 ProcIndex;
_KAFFINITY_ENUMERATION_CONTEXT Context;
_EVENT_DATA_DESCRIPTOR v11;
unsigned int *p_DeviceInterrupts;
__int64 v13;
_EVENT_DATA_DESCRIPTOR UserData;
int *v15;
__int64 v16;
int *v17;
__int64 v18;
_KAFFINITY_EX *v19;
__int64 v20;
unsigned __int64 *Bitmap;
int v22;
int v23;
v2 = &PPM_ETW_INTERRUPT_STEERING_MASK_CHANGE;
if( Rundown )
v2 = &KMPnPRundownEvt_SleepStudy_ConnectionResource;
if( KiIntSteerEtwEventEnabled((__int64)v2) )
{
*(_QWORD *)&UserData.Size = 4i64;
UserData.Ptr = (unsigned __int64)&KiIntSteerLoadPercent;
v16 = 4i64;
v15 = &KiIntTrackRootCount;
v18 = 4i64;
v17 = &KiIntSteerMaskCount;
v20 = 2i64;
v19 = &KiIntSteerMask;
v23 = 0;
Bitmap = KiIntSteerMask.Bitmap;
v22 = 160 * KiIntSteerMask.Count;
EtwWriteEx(qword_140CEC788[0], v3, 0i64, 0, 0, 0, 5u, &UserData);
}
*(_DWORD *)(&Context.CurrentIndex + 1) = 0;
*(&Context.CurrentIndex + 3) = 0;
v4 = &PPM_ETW_INTERRUPT_STEERING_PROC_CHANGE;
LODWORD(ProcIndex) = 0;
if( Rundown )
v4 = &PPM_ETW_INTERRUPT_STEERING_PROC_RUNDOWN;
if( KiIntSteerEtwEventEnabled((__int64)v4) )
{
Context.CurrentMask = KeActiveProcessors.Bitmap[0];
Context.Affinity = &KeActiveProcessors;
Context.CurrentIndex = 0;
while( 1 )
{
KeEnumerateNextProcessor(&ProcIndex, &Context);
if( v5 )
break;
*(_QWORD *)&v11.Size = 4i64;
v11.Ptr = (unsigned __int64)&ProcIndex;
v13 = 4i64;
p_DeviceInterrupts = &(*(&KiProcessorBlock + (unsigned int)ProcIndex))->DeviceInterrupts;
EtwWriteEx(qword_140CEC788[0], v4, 0i64, 0, 0, 0, 2u, &v11);
}
}
v6 = PPM_ETW_INTERRUPT_STEERING_STATE_RETARGET;
if( Rundown )
v6 = PPM_ETW_INTERRUPT_STEERING_STATE_RUNDOWN;
if( KiIntSteerEtwEventEnabled((__int64)v6) )
{
for( i = *(ULONG_PTR **)&KiIntTrackRootList; i != &KiIntTrackRootList; i = *(ULONG_PTR **)i )
{
if( Rundown || *((_QWORD *)i + 22) != *((_QWORD *)i + 20) )
{
for( j = (__int64 *)*((_QWORD *)i + 2); j != (__int64 *)(i + 4); j = (__int64 *)*j )
KiIntSteerLogState((__int64)j, (__int64)v6);
}
}
}
}Referenced by:
KiIntSteerEventTraceControlCallback