Example #1
0
 /// <summary>
 /// Opens an existing thread object.
 /// </summary>
 /// <param name="access"></param>
 /// <param name="inheritHandle"></param>
 /// <param name="threadId"></param>
 /// <returns></returns>
 public static IntPtr OpenThread(ThreadAccessFlags access, bool inheritHandle, uint threadId)
 {
     IntPtr handle = UnmanagedOpenThread(access, inheritHandle, threadId);
     if (handle == null)
     {
         throw new Win32Exception();
     }
     return handle;
 }
Example #2
0
        public static Handle OpenThread(ThreadAccessFlags desiredAccess, uint threadID)
        {
            IntPtr res = WINAPI.OpenThread(desiredAccess, false, threadID);

            if (res == null)
            {
                throw new OpenThreadException("Getting a handle with " + desiredAccess + " access for the thread with the id " + threadID + " has failed with errorcode" + Marshal.GetLastWin32Error());
            }
            return(new Handle(res));
        }
Example #3
0
        public static SafeMemoryHandle OpenThread(ThreadAccessFlags accessFlags, int threadId)
        {
            var handle = NativeMethods.OpenThread(accessFlags, false, threadId);

            if (handle.IsInvalid || handle.IsClosed)
            {
                throw new Win32Exception();
            }
            return(handle);
        }
Example #4
0
        /// <summary>
        /// Opens an existing thread object.
        /// </summary>
        /// <param name="access"></param>
        /// <param name="inheritHandle"></param>
        /// <param name="threadId"></param>
        /// <returns></returns>
        public static IntPtr OpenThread(ThreadAccessFlags access, bool inheritHandle, uint threadId)
        {
            IntPtr handle = UnmanagedOpenThread(access, inheritHandle, threadId);

            if (handle == null)
            {
                throw new Win32Exception();
            }
            return(handle);
        }
Example #5
0
        /// <summary>
        ///     Opens an existing thread object.
        /// </summary>
        /// <param name="accessFlags">The access to the thread object.</param>
        /// <param name="threadId">The identifier of the thread to be opened.</param>
        /// <returns>An open handle to the specified thread.</returns>
        public static SafeMemoryHandle OpenThread(ThreadAccessFlags accessFlags, int threadId)
        {
            // Open the thread
            var ret = NativeMethods.OpenThread(accessFlags, false, threadId);

            // If the thread was opened
            if (!ret.IsClosed && !ret.IsInvalid)
            {
                return(ret);
            }

            // Else couldn't open the thread, throws an exception
            throw new Win32Exception($"Couldn't open the thread #{threadId}.");
        }
Example #6
0
        private bool TryOpenMainThread(ThreadAccessFlags threadAccess)
        {
            try
            {
                ProcessThread processThread = GetMainThread();

                if (processThread != null)
                {
                    MainThreadHandle = OpenThread(threadAccess, false, (uint)processThread.Id);
                }
            }
            catch { }

            return(MainThreadHandle != IntPtr.Zero);
        }
Example #7
0
 public static extern SafeMemoryHandle OpenThread(ThreadAccessFlags dwDesiredAccess,
                                                  [MarshalAs(UnmanagedType.Bool)] bool bInheritHandle, int dwThreadId);
Example #8
0
        /// <summary>
        ///     Opens an existing thread object.
        /// </summary>
        /// <param name="accessFlags">The access to the thread object.</param>
        /// <param name="threadId">The identifier of the thread to be opened.</param>
        /// <returns>An open handle to the specified thread.</returns>
        public static SafeMemoryHandle OpenThread(ThreadAccessFlags accessFlags, int threadId)
        {
            // Open the thread
            var ret = NativeMethods.OpenThread(accessFlags, false, threadId);

            // If the thread was opened
            if (!ret.IsClosed && !ret.IsInvalid)
                return ret;

            // Else couldn't open the thread, throws an exception
            throw new Win32Exception($"Couldn't open the thread #{threadId}.");
        }
 public static extern IntPtr OpenThread(ThreadAccessFlags dwDesiredAccess, bool bInheritHandle, int dwThreadId);
Example #10
0
 private static extern IntPtr OpenThread(
     ThreadAccessFlags flags,
     bool bInheritHandle,
     uint threadId);
Example #11
0
 public static extern IntPtr OpenThread(
     ThreadAccessFlags dwDesiredAccess,
     [MarshalAs(UnmanagedType.Bool)]
     bool bInheritHandle,
     uint dwThreadId);
Example #12
0
 private static extern IntPtr UnmanagedOpenThread(ThreadAccessFlags dwDesiredAccess, bool bInheritHandle, uint dwThreadId);
Example #13
0
 public static extern SafeMemoryHandle OpenThread(ThreadAccessFlags dwDesiredAccess,
     [MarshalAs(UnmanagedType.Bool)] bool bInheritHandle, int dwThreadId);
Example #14
0
 internal static extern IntPtr OpenThread(ThreadAccessFlags threadAccess, bool inheritHandle, uint threadId);
Example #15
0
 private static extern IntPtr UnmanagedOpenThread(ThreadAccessFlags dwDesiredAccess, bool bInheritHandle, uint dwThreadId);
Example #16
0
 public static extern SafeMemoryHandle OpenThread(ThreadAccessFlags dwDesiredAccess, bool bInheritHandle, int dwThreadId);
Example #17
0
 public static extern IntPtr OpenThread(ThreadAccessFlags dwDesiredAccess, bool bInheritHandle, int dwThreadId);
Example #18
0
 public static extern IntPtr OpenThread(
     ThreadAccessFlags dwDesiredAccess,
     [MarshalAs(UnmanagedType.Bool)] 
     bool bInheritHandle,
     uint dwThreadId);