createthread.md 1.2 KB


title: createthread.md

categories: [cheatsheets]

CreateThread()


HANDLE WINAPI CreateThread(
  _In_opt_  LPSECURITY_ATTRIBUTES  lpThreadAttributes,
  _In_      SIZE_T                 dwStackSize,
  _In_      LPTHREAD_START_ROUTINE lpStartAddress,
  _In_opt_  LPVOID                 lpParameter,
  _In_      DWORD                  dwCreationFlags,
  _Out_opt_ LPDWORD                lpThreadId
);

Microsoft Documentation: https://msdn.microsoft.com/en-us/library/windows/desktop/ms682453(v=vs.85).aspx


Usage:

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>


DWORD WINAPI add(LPVOID lpParameters) {
	// Do Thread activity
}


int main() {

	LPDWORD thId = (LPDWORD)malloc(sizeof(LPDWORD));
	HANDLE hThread = CreateThread(NULL, 0, add, NULL, NULL, thId);
	printf("Thread %d created!\nHandle@%d\nError? %s",
                thId,
                hThread,
                GetLastError() ? "Yeah probably":"Naah not really");

}