createthread

CreateThread

2015. 3. 17. 15:06

함수를 호출한 프로세스 공간에 새로운 스레드를 생성한다.

* 다른 프로세스 공간에 새로운 스레드를 생성하려면 CreateRemoteThread 함수를 사용한다. 


- 출처 : MSDN


  • lpThreadAttributes

- 반환된 핸들을 자식 프로세스에 상속 할 수 있는지 여부를 결정하는 SECURITY_ATTRIBUTES 구조체 변수의 주소를 지정한다.

- 이 값을 NULL로 설정 시, 핸들은 상속되지 않는다.


  • dwStackSize

- 스레드가 사용할 스택의 초기 크기값(바이트 단위)을 설정한다.

- 이 값을 0으로 설정 시 기본 크기 값인 1Mbyte가 설정된다.


  • lpStartAddress

- 생성된 스레드가 실행 할 명령이 정의되어 있는 스레드 함수의 시작 주소를 설정한다.(스레드 함수 이름을 설정하면 됨)

- 스레드 함수의 원형은 WinBase.h에 정의되어 있는 ThreadProc를 사용한다.


  • lpParameter

- 스레드 함수의 전달 인자를 설정한다.

- 전달 인자 없을 시 NULL을 설정한다.


  • dwCreationFlags

- 스레드 생성을 제어하는 플래그

- 일반적으로 0을 설정하며 0으로 설정 시 스레드 생성 후 바로 실행된다.


  • lpThreadId

- 생성된 스레드의 식별자인 TID를 저장할 변수의 주소를 설정한다.

- 스레드 ID값이 필요없을 경우 NULL을 설정하며, NULL 설정 시 값을 반환하지 않는다.


Return value : 성공 시 생성된 스레드의 핸들을 반환하고, 실패 시 NULL을 반환한다. 실패 에 대한 자세한 정보는 GetLastError 함수를 참고한다.


Header : WinBase.h(include Windows.h)


DLL : Kernel32.dll


'Win32 API' 카테고리의 다른 글

OpenThread  (0) 2015.03.17
ResumeThread  (0) 2015.03.17
OpenProcess  (0) 2015.03.16
Process32Next  (0) 2015.03.16
Process32First  (0) 2015.03.16

+ Recent posts