KiRemoveThreadFromAnyReadyQueue
void __fastcall KiRemoveThreadFromAnyReadyQueue(_KPRCB *a1, _KSHARED_READY_QUEUE *a2, __int64 a3, UINT64 a4){
if( (*(_DWORD *)(a3 + 116) & 0x2000) != 0 )
{
KiRemoveThreadFromScbQueue(a1, *(_KSCB **)(a3 + 944), (_ETHREAD *)a3, a4);
}
else if( *(int *)(a3 + 536) >= 0 )
{
KiRemoveThreadFromReadyQueue(a1, (_LIST_ENTRY *)(a3 + 216), (unsigned int)a4);
}
else
{
KiRemoveThreadFromSharedReadyQueue(a2, (_KTHREAD *)a3, (unsigned int)a4);
}
}Referenced by:
KeSetActualBasePriorityThread
KiApplyForegroundBoostThread
KiRescheduleThreadAfterAffinityChange
KiSetHeteroPolicyThread
KiSetPriorityThread