FsRtlNotifyCleanup

VOID __stdcall FsRtlNotifyCleanup(PNOTIFY_SYNC NotifySync, PLIST_ENTRY NotifyList, PVOID FsContext){
  _ETHREAD *CurrentThread; 
  LIST_ENTRY *v7; 
  CurrentThread = (_ETHREAD *)KeGetCurrentThread();
  if( CurrentThread != *((_ETHREAD **)NotifySync + 7) )
  {
    ExAcquireFastMutexUnsafe((PFAST_MUTEX)NotifySync);
    *((_QWORD *)NotifySync + 7) = CurrentThread;
  }
  ++*((_DWORD *)NotifySync + 16);
  v7 = FsRtlIsNotifyOnList(NotifyList, FsContext);
  if( v7 )
    FsRtlNotifyCleanupOneEntry(v7);
  if( (*((_DWORD *)NotifySync + 16))-- == 1 )
  {
    *((_QWORD *)NotifySync + 7) = 0i64;
    ExReleaseFastMutexUnsafe((PFAST_MUTEX)NotifySync);
  }
}

Referenced by:

No references.