static IntPtr LoadLibraryExHook(string Name, IntPtr Reserved, LoadLibraryFlags Flags) { IntPtr hModule = dLoadLibExWReal(Name, Reserved, Flags); if (hModule == IntPtr.Zero) { return(dlopen(Name, RTLD_NOW)); } return(hModule); }
/// <summary> /// Load a library into memory. /// </summary> /// <param name="name">The path to the library.</param> /// <param name="flags">Additonal flags to pass to LoadLibraryEx</param> /// <returns></returns> public static SafeLoadLibraryHandle LoadLibrary(string name, LoadLibraryFlags flags) { SafeLoadLibraryHandle ret = LoadLibraryEx(name, IntPtr.Zero, flags); if (ret.IsInvalid) { throw new Win32Exception(); } return(ret); }
/// <summary> /// Load the library at the given path. /// </summary> public static ModuleInstance LoadLibrary(string path, LoadLibraryFlags flags) { ModuleInstance handle = Imports.LoadLibraryExW(path, IntPtr.Zero, flags); if (handle.IsInvalid) { throw Error.GetExceptionForLastError(path); } return(handle); }
internal static SafeLibraryHandle LoadLibrary(string path, LoadLibraryFlags flags) { SafeLibraryHandle handle = Private.LoadLibraryExW(path, IntPtr.Zero, flags); if (handle.IsInvalid) { int error = Marshal.GetLastWin32Error(); throw GetIoExceptionForError(error, path); } return(handle); }
/// <summary> /// Load the library at the given path. /// </summary> public static SafeModuleHandle LoadLibrary(string path, LoadLibraryFlags flags) { SafeModuleHandle handle = Direct.LoadLibraryExW(path, IntPtr.Zero, flags); if (handle.IsInvalid) { throw ErrorHelper.GetIoExceptionForLastError(path); } return(handle); }
public static SafeMemoryHandle LoadLibrary(string path, LoadLibraryFlags flags = 0) { SafeMemoryHandle moduleHandle = flags != 0 ? Imports.LoadLibraryEx(path, null, flags) : Imports.LoadLibrary(path); if (moduleHandle.IsInvalid) { throw new Win32Exception($"[Win32 Error: {Marshal.GetLastWin32Error()}] " + $"Unable to load library from {path} with Flags: {flags.ToString("X")}"); } return(moduleHandle); }
/// <summary> /// Load a library into memory. /// </summary> /// <param name="name">The path to the library.</param> /// <param name="flags">Additonal flags to pass to LoadLibraryEx</param> /// <param name="throw_on_error">True to throw on error.</param> /// <returns>Handle to the loaded library.</returns> public static NtResult <SafeLoadLibraryHandle> LoadLibrary(string name, LoadLibraryFlags flags, bool throw_on_error) { SafeLoadLibraryHandle ret = Win32NativeMethods.LoadLibraryEx(name, IntPtr.Zero, flags); if (ret.IsInvalid) { if (throw_on_error) { throw new SafeWin32Exception(); } return(Win32Utils.GetLastWin32Error().CreateResultFromDosError <SafeLoadLibraryHandle>(false)); } return(ret.CreateResult()); }
/// <summary> /// LoadLibraryEx constructor to load a dll and be responsible for freeing it. /// </summary> /// <param name="dllName">full path name of dll to load</param> /// <param name="flags"></param> /// <remarks>Throws exceptions on failure. Most common failure would be file-not-found, or that the file is not a loadable image.</remarks> public NativeLibrary(string dllName, LoadLibraryFlags flags) { UnicodeString str = new UnicodeString(dllName); IntPtr ptr; NtStatus result = Win32.LdrLoadDll(null, (int)flags, ref str, out ptr); if (result.IsError()) { this.MarkAsInvalid(); } str.Dispose(); }
public Library(string Path, LoadLibraryFlags Flags) : this(Kernel32.LoadLibrary(Path, IntPtr.Zero, Flags)) { FileName = Path; }
public static extern IntPtr LoadLibraryEx(string lpFileName, IntPtr hReservedNull, LoadLibraryFlags dwFlags);
public static extern IntPtr LoadLibraryEx(string lpFileName, IntPtr hFile, LoadLibraryFlags dwFlags);
public static extern IntPtr LoadLibraryEx(string fileName, IntPtr hFileReservedAlwaysZero, LoadLibraryFlags dwFlags);
static extern IntPtr LoadLibraryEx(string lpFileName, IntPtr hFile, LoadLibraryFlags dwFlags);
internal static extern SafeMemoryHandle LoadLibraryEx( [MarshalAs(UnmanagedType.LPStr)] string lpFileName, [Optional] SafeMemoryHandle hFile, LoadLibraryFlags dwFlags);
public static extern IntPtr LoadLibraryEx(String fileName, int hFile, LoadLibraryFlags dwFlags);
public LibHandle(string filename, LoadLibraryFlags flags) : base(IntPtr.Zero, true) { base.SetHandle(LoadLibraryEx(filename, IntPtr.Zero, flags)); IsInvalid = this.handle == IntPtr.Zero; }
/// <summary> /// Load a library into memory. /// </summary> /// <param name="name">The path to the library.</param> /// <param name="flags">Additonal flags to pass to LoadLibraryEx</param> /// <returns>Handle to the loaded library.</returns> public static SafeLoadLibraryHandle LoadLibrary(string name, LoadLibraryFlags flags) { return(LoadLibrary(name, flags, true).Result); }
private static extern IntPtr LoadLibraryEx(string dllToLoad, IntPtr hReservedNull, LoadLibraryFlags dwFlags);
public static IntPtr LoadLibraryEx(string module, LoadLibraryFlags flags) { return(Kernel32.LoadLibraryEx(module, IntPtr.Zero, flags)); }
public static extern IntPtr LoadLibraryEx(string path, IntPtr handle, LoadLibraryFlags flags);
public static extern IntPtr LoadLibraryEx( IntPtr lpFileName, IntPtr hFile, [MarshalAs(UnmanagedType.U4)] LoadLibraryFlags dwFlags);
public static extern IntPtr LoadLibraryEx(string path, IntPtr reserved, LoadLibraryFlags flags);
public static IntPtr LoadLibraryEx(string lpFileName, LoadLibraryFlags dwFlags) => LoadLibraryEx(lpFileName, IntPtr.Zero, dwFlags);
public static extern IntPtr LoadLibraryEx(String modulePath, IntPtr fileHandle, LoadLibraryFlags flags);
/// <summary> /// 装载指定的动态链接库,并为当前进程把它映射到地址空间。一旦载入,就可以访问库内保存的资源。一旦不需要,用FreeLibrary函数释放DLL /// </summary> /// <param name="lpFileName">指定要载入的动态链接库的名称。采用与CreateProcess函数的lpCommandLine参数指定的同样的搜索顺序</param> /// <param name="hReservedNull">未用,设为零</param> /// <param name="dwFlags"></param> /// <returns>成功则返回库模块的句柄,零表示失败。会设置GetLastError</returns> /// <remarks>参考 http://www.pinvoke.net/default.aspx/kernel32/LoadLibraryEx.html . /// If you only want to load resources from the library, specify LoadLibraryFlags.LoadLibraryAsDatafile as dwFlags. /// In this case, nothing is done to execute or prepare to execute the mapped file.</remarks> [DllImport("kernel32.dll")] private static extern IntPtr LoadLibraryEx(string lpFileName, IntPtr hReservedNull, LoadLibraryFlags dwFlags);
internal static extern IntPtr LoadLibraryEx( [MarshalAs(UnmanagedType.LPWStr)] string path, IntPtr reserved, LoadLibraryFlags flags);
public static extern IntPtr LoadLibraryEx(string path, IntPtr hFile, LoadLibraryFlags flags);
internal static extern Module LoadLibraryEx(string filename, Unused unused, LoadLibraryFlags dwFlags);
public static IntPtr LoadLibraryEx(string lpfFileName, LoadLibraryFlags flags) { return(LoadLibraryEx(lpfFileName, IntPtr.Zero, flags)); }
internal static extern IntPtr LoadLibraryEx(String fileName, int hFile, LoadLibraryFlags dwFlags);
public static extern RefCountedModuleInstance LoadLibraryExW( string lpFileName, IntPtr hFile, LoadLibraryFlags dwFlags);
internal static extern SafeLoadLibraryHandle LoadLibraryEx(string name, IntPtr reserved, LoadLibraryFlags flags);
public static extern IntPtr LoadLibraryEx(string filename, IntPtr reserved, LoadLibraryFlags flags);
public static extern IntPtr LoadLibrary( [In][MarshalAs(UnmanagedType.LPStr)] string path, [In] LoadLibraryFlags flags = LoadLibraryFlags.Now | LoadLibraryFlags.Global );