KiCheckKeepAlive
UINT8 __stdcall KiCheckKeepAlive(UINT64 ProcNumber){
unsigned int v1;
UINT8 v2;
unsigned __int64 v3;
char v4;
unsigned __int64 v5;
v1 = ProcNumber;
v2 = 0;
v3 = (unsigned int)KiProcessorIndexToNumberMappingTable[(unsigned int)ProcNumber];
v4 = v3 & 0x3F;
v5 = v3 >> 6;
if( ((KiClockCheckPending.Bitmap[v5] >> v4) & 1) != 0 )
{
if( ((KiClockCheckReady.Bitmap[v5] >> v4) & 1) != 0 )
{
KeRemoveProcessorAffinityEx(&KiClockCheckReady.Count, (unsigned int)ProcNumber);
KeRemoveProcessorAffinityEx(&KiClockCheckPending.Count, v1);
return 1;
}
else
{
KeAddProcessorAffinityEx(&KiClockCheckReady.Count, (unsigned int)ProcNumber);
}
}
return v2;
}Referenced by:
KeAccumulateTicks