IoUnregisterIoTracking

VOID __stdcall IoUnregisterIoTracking(VOID *IoTracker){
  _ETHREAD *CurrentThread; 
  _QWORD *v3; 
  VOID **v4; 

  IoPerfReset(2ui64);
  IopIrpExtensionControl(2ui64, 0i64);
  CurrentThread = (_ETHREAD *)KeGetCurrentThread();
  --CurrentThread->Tcb.SpecialApcDisable;
  ExAcquirePushLockExclusiveEx((_EX_PUSH_LOCK *)&stru_140C452E0 + 206, 0i64);
  v3 = *(_QWORD **)IoTracker;
  if( *(VOID **)(*(_QWORD *)IoTracker + 8i64) != IoTracker
    || (v4 = (VOID **)*((_QWORD *)IoTracker + 1), *v4 != IoTracker) )
  {
    __fastfail(3u);
  }
  *v4 = v3;
  v3[1] = v4;
  if( (_InterlockedExchangeAdd64((_QWORD *)&stru_140C452E0 + 206, 0xFFFFFFFFFFFFFFFFui64) & 6) == 2 )
    ExfTryToWakePushLock((_EX_PUSH_LOCK *)&stru_140C452E0 + 206);
  KeAbPostRelease((char *)&stru_140C452E0 + 1648);
  KiLeaveGuardedRegionUnsafe((__int64)KeGetCurrentThread());
  ExFreePoolWithTag(IoTracker, 0x72546F49u);
}

Referenced by:

No references.