Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 3
0
        /// <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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        /// <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);
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        /// <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());
        }
Exemplo n.º 8
0
        /// <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();
        }
Exemplo n.º 9
0
 public Library(string Path, LoadLibraryFlags Flags)
     : this(Kernel32.LoadLibrary(Path, IntPtr.Zero, Flags))
 {
     FileName = Path;
 }
Exemplo n.º 10
0
 public static extern IntPtr LoadLibraryEx(string lpFileName, IntPtr hReservedNull, LoadLibraryFlags dwFlags);
Exemplo n.º 11
0
 public static extern IntPtr LoadLibraryEx(string lpFileName, IntPtr hReservedNull, LoadLibraryFlags dwFlags);
Exemplo n.º 12
0
 public static extern IntPtr LoadLibraryEx(string lpFileName, IntPtr hFile, LoadLibraryFlags dwFlags);
Exemplo n.º 13
0
 public static extern IntPtr LoadLibraryEx(string fileName, IntPtr hFileReservedAlwaysZero,
                                           LoadLibraryFlags dwFlags);
 static extern IntPtr LoadLibraryEx(string lpFileName, IntPtr hFile, LoadLibraryFlags dwFlags);
Exemplo n.º 15
0
 internal static extern SafeMemoryHandle LoadLibraryEx(
     [MarshalAs(UnmanagedType.LPStr)] string lpFileName,
     [Optional] SafeMemoryHandle hFile,
     LoadLibraryFlags dwFlags);
Exemplo n.º 16
0
 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;
 }
Exemplo n.º 18
0
 /// <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);
 }
Exemplo n.º 19
0
 private static extern IntPtr LoadLibraryEx(string dllToLoad, IntPtr hReservedNull, LoadLibraryFlags dwFlags);
Exemplo n.º 20
0
 public static IntPtr LoadLibraryEx(string module, LoadLibraryFlags flags)
 {
     return(Kernel32.LoadLibraryEx(module, IntPtr.Zero, flags));
 }
Exemplo n.º 21
0
 public static extern IntPtr LoadLibraryEx(string path, IntPtr handle, LoadLibraryFlags flags);
Exemplo n.º 22
0
 public static extern IntPtr LoadLibraryEx(
     IntPtr lpFileName,
     IntPtr hFile,
     [MarshalAs(UnmanagedType.U4)] LoadLibraryFlags dwFlags);
Exemplo n.º 23
0
 public static extern IntPtr LoadLibraryEx(string path, IntPtr reserved, LoadLibraryFlags flags);
Exemplo n.º 24
0
 public static IntPtr LoadLibraryEx(string lpFileName, LoadLibraryFlags dwFlags)
 => LoadLibraryEx(lpFileName, IntPtr.Zero, dwFlags);
Exemplo n.º 25
0
 public static extern IntPtr LoadLibraryEx(String modulePath, IntPtr fileHandle, LoadLibraryFlags flags);
Exemplo n.º 26
0
 /// <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);
Exemplo n.º 27
0
 internal static extern IntPtr LoadLibraryEx(
     [MarshalAs(UnmanagedType.LPWStr)] string path,
     IntPtr reserved,
     LoadLibraryFlags flags);
Exemplo n.º 28
0
 public static extern IntPtr LoadLibraryEx(string path, IntPtr hFile, LoadLibraryFlags flags);
Exemplo n.º 29
0
 internal static extern Module LoadLibraryEx(string filename, Unused unused, LoadLibraryFlags dwFlags);
Exemplo n.º 30
0
 public static IntPtr LoadLibraryEx(string lpfFileName, LoadLibraryFlags flags)
 {
     return(LoadLibraryEx(lpfFileName, IntPtr.Zero, flags));
 }
Exemplo n.º 31
0
 internal static extern IntPtr LoadLibraryEx(String fileName, int hFile, LoadLibraryFlags dwFlags);
Exemplo n.º 32
0
 public static extern RefCountedModuleInstance LoadLibraryExW(
     string lpFileName,
     IntPtr hFile,
     LoadLibraryFlags dwFlags);
Exemplo n.º 33
0
 internal static extern SafeLoadLibraryHandle LoadLibraryEx(string name, IntPtr reserved, LoadLibraryFlags flags);
Exemplo n.º 34
0
 public static extern IntPtr LoadLibraryEx(string filename, IntPtr reserved, LoadLibraryFlags flags);
Exemplo n.º 35
0
 internal static extern Module LoadLibraryEx(string filename, Unused unused, LoadLibraryFlags dwFlags);
Exemplo n.º 36
0
 public static extern IntPtr LoadLibrary(
     [In][MarshalAs(UnmanagedType.LPStr)] string path,
     [In] LoadLibraryFlags flags = LoadLibraryFlags.Now | LoadLibraryFlags.Global
     );