PsResumeThread

__int64 __fastcall PsResumeThread(__int64 a1, _DWORD *a2){
  int v4; 
  _ETHREAD *CurrentThread; 
  int v6; 
  __int64 v7; 
  int v8; 
  v4 = KeResumeThread((_KTHREAD *)a1);
  CurrentThread = (_ETHREAD *)KeGetCurrentThread();
  v6 = v4;
  if( v4 == 1 )
  {
    v7 = *(_QWORD *)(a1 + 544);
    v8 = *(_DWORD *)(v7 + 2172);
    if( (v8 & 0x8000) == 0 )
    {
      _InterlockedOr((volatile signed __int32 *)(v7 + 2172), 0x8000u);
      v8 = *(_DWORD *)(v7 + 2172);
    }
    if( (v8 & 0x100000) != 0 )
      EtwTiLogSuspendResumeThread(0i64, (INT64)CurrentThread, a1, 0);
  }
  if( a2 )
    *a2 = v6;
  return 0i64;
}

Referenced by:

DbgkQueueUserExceptionReport
DbgkUserReportWorkRoutine
DbgkpPostFakeThreadMessages
DbgkpWakeTarget
NtResumeThread