PfSnEndProcessTrace

__int64 __fastcall PfSnEndProcessTrace(_EPROCESS *a1, signed __int32 a2, const VOID *a3){
  _PFSN_TRACE_HEADER *v5; 
  unsigned int v6; 
  _PFSN_TRACE_HEADER *v7; 

  v5 = PfSnReferenceProcessTrace(a1);
  v6 = 0;
  v7 = v5;
  if( v5 )
  {
    if( !a3 || !memcmp(a3, v5 + 6, 0x40ui64) )
    {
      if( _InterlockedCompareExchange(v7 + 100, a2, 0) )
        v6 = -1073741431;
      else
        ExQueueWorkItem((PWORK_QUEUE_ITEM)(v7 + 92), DelayedWorkQueue);
    }
    else
    {
      v6 = -1073741198;
    }
    ExReleaseRundownProtection((_EX_RUNDOWN_REF *)v7 + 45);
  }
  else
  {
    return(unsigned int)-1073741275;
  }
  return v6;
}

Referenced by:

PfSnFailProcessTrace
PfSnOperationProcess
PspExitProcess