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; }