IoApplyPriorityInfoThread
VOID __fastcall IoApplyPriorityInfoThread(
_IO_PRIORITY_INFO *InputPriorityInfo,
_IO_PRIORITY_INFO *OutputPriorityInfo,
_ETHREAD *Thread){
_IO_PRIORITY_HINT v6;
UINT64 PagePriority;
INT64 ThreadPriority;
_IO_PRIORITY_INFO v9;
if( InputPriorityInfo->ThreadPriority != 0xFFFF )
{
v6 = PsSetIoPriorityThread(Thread, InputPriorityInfo->IoPriority);
PagePriority = InputPriorityInfo->PagePriority;
v9.IoPriority = v6;
if( (_DWORD)PagePriority == -1 )
v9.PagePriority = -1;
else
v9.PagePriority = PsSetPagePriorityThread(Thread, PagePriority);
ThreadPriority = InputPriorityInfo->ThreadPriority;
if( (_DWORD)ThreadPriority == -1 )
{
v9.ThreadPriority = -1;
}
else
{
v9.ThreadPriority = Thread->Tcb.BasePriority;
KeSetActualBasePriorityThread(&Thread->Tcb, ThreadPriority);
}
if( OutputPriorityInfo )
{
v9.Size = 16;
*OutputPriorityInfo = v9;
}
}
}Referenced by:
No references.