PpmCheckContinueExecution
UINT8 __stdcall PpmCheckContinueExecution(){
__int64 Number;
UINT8 result;
NTSTATUS v2;
_KAFFINITY_EX *p_DeepIdleMask;
_KAFFINITY_EX DeepIdleMask;
memset(&DeepIdleMask, 0i64, sizeof(DeepIdleMask));
KeQuerySystemAllowedCpuSetAffinity(&PpmCachedSystemAllowedCpuSet, &PpmCachedSystemAllowedCpuSetVersion);
Number = KeGetCurrentPrcb()->Number;
if( ((PpmCachedSystemAllowedCpuSet.Bitmap[(unsigned __int64)(unsigned int)KiProcessorIndexToNumberMappingTable[Number] >> 6] >> (KiProcessorIndexToNumberMappingTable[Number] & 0x3F)) & 1) == 0 )
{
PoCopyDeepIdleMask(&DeepIdleMask);
v2 = KeSubtractAffinityEx(&PpmCachedSystemAllowedCpuSet.Count, (INT8 *)&DeepIdleMask, (INT8 *)&DeepIdleMask);
p_DeepIdleMask = &DeepIdleMask;
if( !v2 )
p_DeepIdleMask = &PpmCachedSystemAllowedCpuSet;
LOWORD(Number) = KeFindFirstSetRightAffinityEx(&p_DeepIdleMask->Count);
}
if( !*(&PopIrpWorkerControlEvent + 151) )
*(&PopIrpWorkerControlEvent + 577) = Number + 1280;
KiInsertQueueDpc((_KDPC *)&PopIrpWorkerControlEvent + 18, 0i64, 0i64, 0i64, 0);
return result;
}Referenced by:
PpmPerfAction
PpmPerfControlActionCallback