PpmCheckMakeupSkippedChecks
INT64 __fastcall PpmCheckMakeupSkippedChecks(){
INT64 result;
__int64 v1;
INT64 v2;
INT64 *v3;
unsigned int v4;
__int64 v5;
unsigned int v6;
unsigned __int16 i;
__int64 v8;
unsigned __int16 *v9[2];
__int16 v10;
int v11;
__int16 v12;
void *retaddr;
UINT64 ProcessorNumber;
result = (INT64)&retaddr;
v11 = 0;
v12 = 0;
LODWORD(ProcessorNumber) = 0;
if( (_DWORD)PpmCheckMakeupCount )
{
if( PpmParkMaximumCoresParked() && PpmPerfMinimumPerfReached() )
{
v9[1] = (unsigned __int16 *)qword_140C11268[0];
v9[0] = (unsigned __int16 *)&PpmCheckRegistered;
v10 = 0;
while( 1 )
{
result = KeEnumerateNextProcessor(&ProcessorNumber, v9);
if( (_DWORD)result )
break;
KeGetPrcb((unsigned int)ProcessorNumber);
PpmPerfCompleteMakeup(v1 + 33128);
}
v2 = PpmPerfDomainHead;
v3 = &PpmPerfDomainHead;
while( (INT64 *)v2 != v3 )
{
if( *(_DWORD *)(v2 + 200) )
{
v4 = 0;
do
{
result = v4;
v5 = *(_QWORD *)(v2 + 216) + 136i64 * v4;
if( *(_DWORD *)(v5 + 16) == 1 )
result = PpmPerfCompleteMakeup(*(_QWORD *)v5);
++v4;
}
while( v4 < *(_DWORD *)(v2 + 200) );
}
v2 = *(_QWORD *)v2;
}
v6 = PpmParkNumNodes;
for( i = 0; i < v6; result = i )
{
v8 = i++;
*(_QWORD *)(PpmParkNodes + 272 * v8 + 112) = *(_QWORD *)(PpmParkNodes + 272 * v8 + 104);
}
LODWORD(PpmCheckMakeupCount) = 0;
}
else
{
PpmEventTraceMakeupPerfCheck();
LODWORD(PpmCheckMakeupCount) = PpmCheckMakeupCount - 1;
PpmCheckPipelineIndex = 4;
}
}
LOBYTE(result) = 1;
return result;
}Referenced by:
No references.