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