티스토리 뷰

DuplicateHandle()

오브젝트 핸들을 복사하는 함수

BOOL WINAPI DuplicateHandle( 
_In_   HANDLE hSourceProcessHandle, 	//복제할 핸들을 소유하는 프로세스 
_In_   HANDLE hSourceHandle, 		//복제할 핸들 
_In_   HANDLE hTargetProcessHandle, 	//복제된 핸들을 소유할 프로세스 
_Out_  LPHANDLE lpTargetHandle, 	//복제된 핸들값을 저장한 변수의 주소 
_In_   DWORD dwDesiredAccess, 		//복제할 핸들의 접근권한 
_In_   BOOL bInheritHandle, 		//복제할 핸들의 상속여부 
_In_   DWORD dwOptions 			//옵션 
);


가짜 핸들

GetCurrentProcess() 함수를 이용하면 현재 프로세스의 핸들을 얻을 수 있다.
하지만, 이 함수로 구하는 핸들은 핸들테이블에 등록되어 있지 않은 가짜핸들로 
현재 실행중인 프로세스를 참조하기 위한 용도이다.

진짜 핸들

GetCurrentProcess() 함수로 얻은 가짜 핸들이 아닌 진짜 핸들을 얻고 싶으면
오브젝트 핸들을 복사하는 함수 DuplicateHandle을 이용하면 된다.

HANDLE hProcess; DuplicateHandle(GetCurrentProcess(), GetCurrentProcess(), GetCurrentProcess(), &hProcess, 0, TRUE, DUPLICATE_SAME_ACCESS);


hProcess에 현재 프로세스의 핸들이 들어간다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함