다음을 통해 공유


스레드 핸들 및 식별자

CreateThread 또는 CreateRemoteThread 함수에서 새 스레드를 만들면 스레드에 대한 핸들이 반환됩니다. 기본적으로 이 핸들에는 모든 액세스 권한이 있으며 보안 액세스 검사에 따라 스레드 핸들을 허용하는 함수에서 사용할 수 있습니다. 이 핸들은 생성될 때 지정된 상속 플래그에 따라 자식 프로세스에서 상속할 수 있습니다. 이 핸들은 DuplicateHandle에서 복제할 수 있으므로 액세스 권한의 하위 집합을 사용하여 스레드 핸들을 만들 수 있습니다. 핸들은 나타내는 스레드가 종료된 후에도 닫을 때까지 유효합니다.

CreateThreadCreateRemoteThread 함수는 시스템 전체에서 스레드를 고유하게 식별하는 식별자도 반환합니다. 스레드는 GetCurrentThreadId 함수를 사용하여 자체 스레드 식별자를 가져올 수 있습니다. 식별자는 스레드가 만들어지는 시점부터 스레드가 종료될 때까지 유효합니다. 스레드 식별자는 0이 되지 않습니다.

스레드 식별자가 있는 경우 OpenThread 함수를 호출하여 스레드 핸들을 가져올 수 있습니다. OpenThread 를 사용하면 핸들의 액세스 권한 및 핸들을 상속할 수 있는지 여부를 지정할 수 있습니다.

스레드는 GetCurrentThread 함수를 사용하여 자체 스레드 개체에 대한 의사 핸들 을 검색할 수 있습니다. 이 의사 핸들은 호출 프로세스에만 유효합니다. 다른 프로세스에서 사용하기 위해 상속하거나 복제할 수 없습니다. 의사 핸들이 지정된 스레드에 대한 실제 핸들을 가져오려면 DuplicateHandle 함수를 사용합니다.

프로세스의 스레드를 열거하려면 Thread32FirstThread32Next 함수를 사용합니다.