public static void Initialize(IReloadedHooks hooks, Redirector redirector, RedirectorController redirectorController)
        {
            _redirector           = redirector;
            _redirectorController = redirectorController;

            // Get Hooks
            var ntdllHandle         = Native.LoadLibraryW("ntdll");
            var ntCreateFilePointer = Native.GetProcAddress(ntdllHandle, "NtCreateFile");

            // Kick off the server
            if (ntCreateFilePointer != IntPtr.Zero)
            {
                _ntCreateFileHook = hooks.CreateHook <Native.NtCreateFile>((delegate * unmanaged[Stdcall] < IntPtr *, FileAccess, Native.OBJECT_ATTRIBUTES *, Native.IO_STATUS_BLOCK *, long *, uint, FileShare, uint, uint, IntPtr, uint, int >) & NtCreateFileHookFn, (long)ntCreateFilePointer).Activate();
            }
        }
        public void Start(IModLoaderV1 loader)
        {
            #if DEBUG
            Debugger.Launch();
            #endif
            ModLoader = (IModLoader)loader;
            ModLoader.GetController <IReloadedHooks>().TryGetTarget(out var hooks);

            /* Your mod code starts here. */
            var modConfigs = ModLoader.GetActiveMods().Select(x => x.Generic);
            _redirector           = new Redirector(modConfigs);
            _redirectorController = new RedirectorController(_redirector);
            FileAccessServer.Initialize(hooks, _redirector, _redirectorController);

            ModLoader.AddOrReplaceController <IRedirectorController>(this, _redirectorController);
            ModLoader.ModLoading   += ModLoading;
            ModLoader.ModUnloading += ModUnloading;
        }