PopDiagTraceIllegalProcessorThrottle
VOID __stdcall PopDiagTraceIllegalProcessorThrottle(
UINT64 ProcessorId,
UINT64 ThrottleMSR,
_LARGE_INTEGER *LastLogTickCount){
char v3;
char v4;
char v6;
signed __int64 v7;
int v8;
_EVENT_DATA_DESCRIPTOR UserData;
UINT64 *v10;
int v11;
int v12;
int *v13;
int v14;
int v15;
int *v16;
int v17;
int v18;
int v19;
UINT64 v20;
v20 = ThrottleMSR;
v19 = ProcessorId;
v3 = PopDiagHandleRegistered;
v4 = 1;
v6 = 1;
if( !PopDiagHandleRegistered || !EtwEventEnabled(PopDiagHandle, &POP_ETW_EVENT_ILLEGAL_PROCESSOR_THROTTLE_DIAGNOSTIC) )
v4 = 0;
if( !v3 || !EtwEventEnabled(PopDiagHandle, &POP_ETW_EVENT_ILLEGAL_PROCESSOR_THROTTLE_OPERATIONAL) )
v6 = 0;
if( v4 || v6 )
{
UserData.Reserved = 0;
v12 = 0;
UserData.Ptr = (unsigned __int64)&v19;
UserData.Size = 4;
v10 = &v20;
v11 = 8;
if( LastLogTickCount->QuadPart )
v7 = (signed __int64)((unsigned int)KeMaximumIncrement
* (KUSER_SHARED_DATA.TickCountQuad - LastLogTickCount->QuadPart))
/ 10000000;
else
LODWORD(v7) = 0;
v15 = 0;
v18 = 0;
v13 = &v8;
v16 = &PopProcessorThrottleLogInterval;
v8 = v7;
*LastLogTickCount = (_LARGE_INTEGER)KUSER_SHARED_DATA.TickCountQuad;
v14 = 4;
v17 = 4;
if( v4 )
EtwWriteEx(PopDiagHandle, &POP_ETW_EVENT_ILLEGAL_PROCESSOR_THROTTLE_DIAGNOSTIC, 0i64, 0, 0, 0, 4u, &UserData);
if( v6 )
EtwWriteEx(PopDiagHandle, &POP_ETW_EVENT_ILLEGAL_PROCESSOR_THROTTLE_OPERATIONAL, 0i64, 0, 0, 0, 4u, &UserData);
}
}Referenced by:
PpmPerfCheckForIllegalProcessorThrottle
PpmPerfSnapDeliveredPerformance