FsRtlNotifyCleanupAll

VOID __stdcall FsRtlNotifyCleanupAll(PNOTIFY_SYNC NotifySync, PLIST_ENTRY NotifyList){
  _ETHREAD *CurrentThread; 
  _LIST_ENTRY *Flink; 
  _LIST_ENTRY *v6; 

  CurrentThread = (_ETHREAD *)KeGetCurrentThread();
  if( CurrentThread != *((_ETHREAD **)NotifySync + 7) )
  {
    ExAcquireFastMutexUnsafe((PFAST_MUTEX)NotifySync);
    *((_QWORD *)NotifySync + 7) = CurrentThread;
  }
  ++*((_DWORD *)NotifySync + 16);
  Flink = NotifyList->Flink;
  while( Flink != NotifyList )
  {
    v6 = Flink - 2;
    Flink = Flink->Flink;
    FsRtlNotifyCleanupOneEntry(v6);
  }
  if( (*((_DWORD *)NotifySync + 16))-- == 1 )
  {
    *((_QWORD *)NotifySync + 7) = 0i64;
    ExReleaseFastMutexUnsafe((PFAST_MUTEX)NotifySync);
  }
}

Referenced by:

No references.