PfSnDeactivateTrace
INT64 __fastcall PfSnDeactivateTrace(struct EX_RUNDOWN_REF *a1){
UINT64 v1;
unsigned __int8 v3;
unsigned __int64 v4;
UINT64 v5;
unsigned __int8 v6;
unsigned __int64 v7;
unsigned __int64 Count;
struct EX_RUNDOWN_REF **v9;
KeAcquireSpinLockRaiseToDpc(&SpinLock, v1);
v4 = v3;
KxReleaseSpinLock(&SpinLock);
__writecr8(v4);
PfSnRemoveProcessTrace(a1[44].Count);
ExReleaseRundownProtection(a1 + 45);
PfSnCancelTraceTimer((INT64)a1);
ExWaitForRundownProtectionRelease(a1 + 45);
KeAcquireSpinLockRaiseToDpc(&SpinLock, v5);
v7 = v6;
Count = a1[1].Count;
v9 = (struct EX_RUNDOWN_REF **)a1[2].Count;
if( *(struct EX_RUNDOWN_REF **)(Count + 8) != &a1[1] || *v9 != &a1[1] )
__fastfail(3u);
--PfSnNumActiveTraces;
*v9 = (struct EX_RUNDOWN_REF *)Count;
*(_QWORD *)(Count + 8) = v9;
KxReleaseSpinLock(&SpinLock);
__writecr8(v7);
return 0i64;
}Referenced by:
PfSnEndTrace