KiSelectThreadFromSchedulingGroup
_ETHREAD *__fastcall KiSelectThreadFromSchedulingGroup(_KPRCB *Prcb, _KSCB *a2, INT64 a3){
_ETHREAD *p_Blink;
int v4;
unsigned int v5;
UINT64 v6;
p_Blink = 0i64;
v4 = a2->ReadySummary >> a3;
if( v4 )
{
_BitScanReverse(&v5, v4);
v6 = (unsigned int)a3 + v5;
p_Blink = (_ETHREAD *)&a2->ReadyListHead[(unsigned int)v6].Flink[-14].Blink;
KiRemoveThreadFromScbQueue(Prcb, a2, p_Blink, v6);
}
return p_Blink;
}Referenced by:
KiChooseLowestRankedThread
KiSearchForNewThread
KiSelectLowestRankedThread
KiSelectThreadFromScbQueue
KiSwapThread