PopFxAddLogEntry
VOID __fastcall PopFxAddLogEntry(INT64 a1, CHAR a2, CHAR a3, INT64 a4){
__int64 v4;
__int64 v7;
__int64 v8;
__int64 v9;
__int16 v10;
if( a1 )
{
v4 = *(_QWORD *)(a1 + 80);
if( v4 )
{
v7 = (unsigned int)_InterlockedExchangeAdd((volatile signed __int32 *)(v4 + 856), 1u) % *(_DWORD *)(v4 + 840);
v8 = *(_QWORD *)(v4 + 848);
v9 = 3 * v7;
*(_QWORD *)(v8 + 8 * v9) = *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart;
*(_BYTE *)(v8 + 8 * v9 + 8) = a3;
*(_BYTE *)(v8 + 8 * v9 + 9) = a2;
KeGetCurrentProcessorNumberEx(0i64);
*(_WORD *)(v8 + 8 * v9 + 10) = v10;
*(_WORD *)(v8 + 8 * v9 + 12) = *((_WORD *)KeGetCurrentThread() + 572);
*(_WORD *)(v8 + 8 * v9 + 14) = *((_WORD *)KeGetCurrentThread() + 576);
*(_QWORD *)(v8 + 8 * v9 + 16) = a4;
}
}
}Referenced by:
PoFxCompleteDevicePowerNotRequired
PoFxCompleteIdleCondition
PoFxCompleteIdleState
PopDiagTraceFxComponentIdleState
PopDiagTraceFxComponentLatency
PopDiagTraceFxComponentResidency
PopDiagTraceFxComponentWake
PopDiagTraceFxDeviceDirectedCompletion
PopDiagTraceFxDeviceDirectedTransition
PopDiagTraceFxDevicePowerRequirement
PopDiagTraceFxDevicePowerState
PopDiagTraceFxDevicePowered
PopDiagTraceFxDeviceStartPowerManagement
PopDiagTraceIrpFinish
PopDiagTraceIrpStart
PopFxAllocatePowerIrp
PopFxCompleteComponentPerfState
PopFxCompleteDevicePowerRequired
PopFxCompleteDirectedPowerTransition
PopFxHandleDirectedPowerTransition
PopFxIdleTimeoutDpcRoutine
PopFxIdleWorker
PopFxIssueComponentPerfStateChanges
PopFxProcessWork
PopFxTraceDeviceRegistration
PopFxTracePerfRegistration
PopFxUnregisterDevice
PopFxUpdateDeviceIdleTimer
PopPluginNotifyIdleState