CreateRemoteThread (kernel32)
Last changed: -186.136.223.176

.
Summary

C# Signature:

[DllImport("kernel32.dll")]
static extern IntPtr CreateRemoteThread(IntPtr hProcess,
   IntPtr lpThreadAttributes, uint dwStackSize, ThreadStartDelegate
   lpStartAddress, IntPtr lpParameter, uint dwCreationFlags, IntPtr lpThreadId);

[DllImport("kernel32.dll")]
static extern IntPtr CreateRemoteThread(IntPtr hProcess,
   IntPtr lpThreadAttributes, uint dwStackSize, IntPtr lpStartAddress,
   IntPtr lpParameter, uint dwCreationFlags, out IntPtr lpThreadId);

Boo Signature:

[DllImport("kernel32")]
def CreateRemoteThread(hProcess as IntPtr, lpThreadAttributes as IntPtr, dwStackSize as UInt32, lpStartAddress as IntPtr, lpParameter as IntPtr, dwCreationFlags as UInt32, ref lpThreadId as IntPtr) as IntPtr:
      pass

User-Defined Types:

None.

Notes:

None.

Tips & Tricks:

Please add some!

Sample Code:

Here's a sample of using CreateRemoteThread from C#: http://blogs.msdn.com/jmstall/archive/2006/09/28/managed-create-remote-thread.aspx

The key is to use Marshal.GetFunctionPointerForDelegate to get an IntPtr to the method that will serve as the thread proc.

Alternative Managed API:

Do you know one? Please contribute it!

Documentation