PfSnActivateTrace

NTSTATUS __stdcall PfSnActivateTrace(PFSN_TRACE_HEADER *Trace){
  unsigned __int64 v2; 
  int v3; 
  PFSN_TRACE_HEADER **v4; 
  PFSN_TRACE_HEADER *v5; 

  if( !ExAcquireRundownProtection(&RunRef) )
    return -1073741127;
  *((_WORD *)Trace + 243) |= 2u;
  v2 = (unsigned __int8)KeAcquireSpinLockRaiseToDpc(&qword_140C50190);
  v3 = PfSnAddProcessTrace(*((_EPROCESS **)Trace + 44), Trace);
  if( v3 >= 0 )
  {
    v4 = (PFSN_TRACE_HEADER **)qword_140C50188;
    v5 = Trace + 2;
    if( (_QWORD *)*qword_140C50188 != &qword_140C50180 )
      __fastfail(3u);
    ++PfSnNumActiveTraces;
    *(_QWORD *)v5 = &qword_140C50180;
    v3 = 0;
    *((_QWORD *)Trace + 2) = v4;
    *v4 = v5;
    qword_140C50188 = Trace + 2;
  }
  KxReleaseSpinLock(&qword_140C50190);
  __writecr8(v2);
  return v3;
}

Referenced by:

PfSnBeginTrace