IoUnregisterFsRegistrationChange

NTSTATUS __fastcall IoUnregisterFsRegistrationChange(UINT64 a1, INT64 a2, INT64 a3){
  _ETHREAD *CurrentThread; 
  _QWORD *i; 
  NTSTATUS result; 
  _QWORD *v8; 
  _QWORD *v9; 

  CurrentThread = (_ETHREAD *)KeGetCurrentThread();
  --CurrentThread->Tcb.KernelApcDisable;
  ExAcquireResourceExclusiveLite((UINT64)&stru_140C452E0 + 1280, 1, a3);
  for( i = (_QWORD *)*(&stru_140C452E0 + 208); i != (_QWORD *)((char *)&stru_140C452E0 + 1664); i = (_QWORD *)*i )
  {
    if( i[2] == a1 && i[3] == a2 )
    {
      v8 = (_QWORD *)*i;
      if( *(_QWORD **)(*i + 8i64) != i || (v9 = (_QWORD *)i[1], (_QWORD *)*v9 != i) )
        __fastfail(3u);
      *v9 = v8;
      v8[1] = v9;
      ExFreePoolWithTag(i, 0);
      break;
    }
  }
  ExReleaseResourceLite((PERESOURCE)((char *)&stru_140C452E0 + 1280));
  KeLeaveCriticalRegionThread(KeGetCurrentThread());
  HalPutDmaAdapter((PADAPTER_OBJECT)a1);
  return result;
}

Referenced by:

No references.