KiSuspendUmsThread

int __fastcall KiSuspendUmsThread(_ETHREAD *a1, _DWORD *a2){
  INT64 v2; 
  int result; 

  v2 = *(_QWORD *)a1->Tcb.WaitBlock[3].Object;
  *a2 = 0;
  if( (*((_DWORD *)a1->Tcb.WaitBlock[3].Object + 20) & 4) != 0 )
    result = PspRundownUmsThreadForApcDelivery(a1, a2, v2, 0);
  else
    result = 0;
  if( result >= 0 )
    return KeUpdateUmsThreadState(v2, 1i64, 0);
  return result;
}

Referenced by:

KiSchedulerApc