KeAbProcessBaseIoPriorityChangeInternal

VOID __stdcall KeAbProcessBaseIoPriorityChangeInternal(_ETHREAD *Thread, UINT64 PriorityIncreased){
  unsigned __int8 CurrentIrql; 
  _KPRCB *CurrentPrcb; 
  _SINGLE_LIST_ENTRY *v4; 
  _SINGLE_LIST_ENTRY *v5; 
  CurrentIrql = KeGetCurrentIrql();
  __writecr8(2ui64);
  CurrentPrcb = KeGetCurrentPrcb();
  if( !*((_BYTE *)Thread + 871) || (_DWORD)PriorityIncreased )
  {
    if( !*((_BYTE *)Thread + 793) || !(_DWORD)PriorityIncreased )
      goto LABEL_3;
    v4 = (_SINGLE_LIST_ENTRY *)((char *)Thread + 808);
    v5 = (_SINGLE_LIST_ENTRY *)((char *)CurrentPrcb + 34680);
  }
  else
  {
    v4 = (_SINGLE_LIST_ENTRY *)((char *)Thread + 816);
    v5 = (_SINGLE_LIST_ENTRY *)((char *)CurrentPrcb + 34672);
  }
  if( (unsigned int)KiAbThreadInsertList((_KTHREAD *)Thread, v5, v4) )
    KiAbQueueAutoBoostDpc(CurrentPrcb);
LABEL_3:
  __writecr8(CurrentIrql);
}

Referenced by:

IoUpdateThreadIoRateThrottle
KeAbProcessBaseIoPriorityChange