출처 : http://artisticbit.tistory.com/entry/WaitForSingleObject-%ED%95%A8%EC%88%98
출처 : https://www.joinc.co.kr/w/man/4100/WaitForsingleObject
WaitForSingleObject()
-> 커널 오브젝트의 상태 정보를 확인하는데 사용
-> 해당 리소스의 커널 오브젝트가 Signaled 인지 Non-Signaled 인지 알 수 있다.
DWORD WINAPI WaitForSingleObject(
__in HANDLE hHandle,
__in DWORD dwMilliseconds
);
hHandle
-> 기다릴 객체의 핸들을 지정한다.
dwMilliseconds
-> 제한시간을 밀리초 단위로 지정한다. 제한시간이 지나면 시그널이 도착하지 않았더라도 반환한다. 0을 지정하면 객체의 상태를 확인하고 바로 반환한다. INFINITE를 지정하면 시그널이 도착할 때까지 기다린다.
반환값
-> WAIT_ABANDDNED : 지정된 객체가 파기된 뮤텍스 객체다. 뮤텍스를 소유한 쓰레드가 뮤텍스 객체의 소유권을 되돌려 주지 않고 종료했다. 그래서 뮤텍스 객체의 소유권이 호출한 쓰레드로 옮겨졌으며, 뮤텍스는 비시그널 상태가 되었다.
-> WAIT_OBJECT_0 : 지정한 객체에 시그널 상태다.
-> WAIT_TIMEOUT : 제한시간이 지날때 까지 시그널 상태가 되지 않았다.
WaitForSingleObject() 는 다음의 객체를 기다린다.
-> 콘솔 입력
-> 이벤트
-> 메모리 리소스 통지
-> 뮤텍스
-> 프로세스
-> 세마포어
-> Thread(쓰레드)
-> 타이머
'Reversing(리버싱 핵심 원리) > API 함수' 카테고리의 다른 글
ZwQuerySysteminformation 함수 원리 (0) | 2018.07.29 |
---|