KeSetIdealProcessorThreadByNumber
VOID __fastcall KeSetIdealProcessorThreadByNumber(
_ETHREAD *Thread,
_PROCESSOR_NUMBER *ProcessorNumber,
_PROCESSOR_NUMBER *OldNumber){
unsigned int ProcessorIndexFromNumber;
UINT64 IdealProcessor;
UINT64 OldProcessor;
LODWORD(OldProcessor) = 0;
ProcessorIndexFromNumber = KeGetProcessorIndexFromNumber(&ProcessorNumber->Group);
if( ProcessorIndexFromNumber == -1 )
{
if( Thread == (_ETHREAD *)KeGetCurrentThread() )
IdealProcessor = Thread->Tcb.IdealProcessor;
else
IdealProcessor = Thread->Tcb.UserIdealProcessor;
}
else
{
KeSetIdealProcessorThreadEx(Thread, ProcessorIndexFromNumber, &OldProcessor);
IdealProcessor = (unsigned int)OldProcessor;
}
KeGetProcessorNumberFromIndex(IdealProcessor, OldNumber);
}Referenced by:
KeSetIdealProcessorThread
NtQueryInformationThread
NtSetInformationThread