Binarysharp.MemoryManagement.Threading.ThreadFactory.Create C# (CSharp) Method

Create() public method

Creates a thread that runs in the remote process.
public Create ( IntPtr address, bool isStarted = true ) : RemoteThread
address System.IntPtr /// A pointer to the application-defined function to be executed by the thread and represents /// the starting address of the thread in the remote process. ///
isStarted bool Sets if the thread must be started just after being created.
return RemoteThread
        public RemoteThread Create(IntPtr address, bool isStarted = true)
        {
            // Create the thread
            var ret = ThreadCore.NtQueryInformationThread(
                ThreadCore.CreateRemoteThread(MemorySharp.Handle, address, IntPtr.Zero, ThreadCreationFlags.Suspended));

            // Get the native thread previously created
            // Loop until the native thread is retrieved
            ProcessThread nativeThread;
            do
            {
                nativeThread = MemorySharp.Threads.NativeThreads.FirstOrDefault(t => t.Id == ret.ThreadId);
            } while (nativeThread == null);

            // Wrap the native thread in an object of the library
            var result = new RemoteThread(MemorySharp, nativeThread);

            // If the thread must be started
            if (isStarted)
                result.Resume();
            return result;
        }

Same methods

ThreadFactory::Create ( IntPtr address, dynamic parameter, bool isStarted = true ) : RemoteThread