본문 바로가기

Programming/Windows&C#

[Windows/WinAPI] GetCurrentProcess, GetCurrentProcessId, ResumeThread, WaitForSingleObject

728x90
반응형
HANDLE WINAPI GetCurrentProcess(void);


함수 설명 :

넘겨주는 인자는 없으며 현재 실행중인 프로세스의 핸들을 반환값으로 넘겨둔다.





DWORD WINAPI GetCurrentProcessId(void);


함수 설명 :   

넘겨주는 인자는 없으며 형재 실행중인 프로세스 ID를 반환값으로 넘겨준다.




DWORD WINAPI ResumeThread( _In_  HANDLE hThread ----- 쓰래드 핸들 );


함수 설명 :

쓰레드 대기 계수 값을 감소 시킨다. 만약 대기 값이 0이 되면, 대기중이던 쓰래드가 실행이 된다.




DWORD WINAPI WaitForSingleObject( _In_  HANDLE hHandle, -----① _In_  DWORD dwMilliseconds -----② );


함수 설명 : 

핸들을 인자로 전달해서 커널 오브젝트의 상태를 확인한다. 이 함수는 상태에 따라 결과 값이 다르다.


값 

의미 

 WAIT_OBJECT_0

 커널 오브젝트가 Signaled 상태가 되었을 떄 반환되는 값

 WAIT_ABANDONED

 커널 오브젝트가 Signaled 상태가 되지 않고, dwMilliseconds 인자를 통해서 설정된 시간이 다 된 경우에 반환 되는 값. 

 WAIT_TIMEOUT

 소유 관계와 관현하여 함수가 정삭적이지 못한 오류 발생에 의해 반환하는 경우 반환되는 값. 

 WAIT_FAILED

 에러. 


① hHandle :

상태확인을 원하는 커널 오브젝트의 핸들을 인자로 넘겨준다.


② dwMilliseconds :

WaitForSingleObject 함수는 인자로 전달된 hHandle이 가리키는 커널 오브젝트가 Signaled 상태가 될 떄까지 기다리는 함수다. 만약에 상수 INFINITE를 인자로 전달하면 커널 오브젝트가 Signaled 상태가 될 때 까지 반환하지 않고 무한정 기다리게 된다.




반응형