PfSnDeactivateTrace
NTSTATUS __stdcall PfSnDeactivateTrace(PFSN_TRACE_HEADER *Trace){
unsigned __int64 v2;
unsigned __int64 v3;
__int64 v4;
PFSN_TRACE_HEADER **v5;
v2 = (unsigned __int8)KeAcquireSpinLockRaiseToDpc(&qword_140C50190);
KxReleaseSpinLock(&qword_140C50190);
__writecr8(v2);
PfSnRemoveProcessTrace(*((_EPROCESS **)Trace + 44));
ExReleaseRundownProtection((_EX_RUNDOWN_REF *)Trace + 45);
PfSnCancelTraceTimer(Trace);
ExWaitForRundownProtectionRelease((_EX_RUNDOWN_REF *)Trace + 45);
v3 = (unsigned __int8)KeAcquireSpinLockRaiseToDpc(&qword_140C50190);
v4 = *((_QWORD *)Trace + 1);
v5 = (PFSN_TRACE_HEADER **)*((_QWORD *)Trace + 2);
if( *(PFSN_TRACE_HEADER **)(v4 + 8) != Trace + 2 || *v5 != Trace + 2 )
__fastfail(3u);
--PfSnNumActiveTraces;
*v5 = (PFSN_TRACE_HEADER *)v4;
*(_QWORD *)(v4 + 8) = v5;
KxReleaseSpinLock(&qword_140C50190);
__writecr8(v3);
return 0;
}Referenced by:
PfSnEndTrace