KiUpdateSharedReadyQueueAffinityThread
VOID __stdcall KiUpdateSharedReadyQueueAffinityThread(_KPRCB *IdealPrcb, _ETHREAD *Thread){
unsigned __int64 SharedReadyQueueMask;
int v3;
if( !IdealPrcb )
IdealPrcb = *(&KiProcessorBlock + Thread->Tcb.IdealProcessor);
SharedReadyQueueMask = IdealPrcb->SharedReadyQueueMask;
v3 = 0;
if( SharedReadyQueueMask )
LOBYTE(v3) = (SharedReadyQueueMask & Thread->Tcb.Affinity.Mask) == SharedReadyQueueMask;
if( v3 != (((unsigned int)*(&Thread->Tcb.MiscFlags + 1) >> 13) & 1) )
_InterlockedXor((volatile signed __int32 *)&Thread->Tcb.116 + 1, 0x2000u);
}Referenced by:
KeSetActualBasePriorityThread
KeSetIdealProcessorThreadEx
KeStartThread
KeUpdateThreadSchedulingProperties
KiApplyForegroundBoostThread
KiComputeThreadAffinity
KiSetAffinityThread
KiSetPriorityThread
KiSetSystemAffinityThread