데스크톱에 대한 스레드 연결
프로세스가 창 스테이션에 연결되면 시스템은 연결을 만드는 스레드에 데스크톱을 할당합니다. 시스템은 다음 규칙에 따라 스레드에 할당할 데스크톱을 결정합니다.
- 스레드가 SetThreadDesktop 함수를 호출한 경우 지정된 데스크톱에 연결됩니다.
- 스레드가 SetThreadDesktop을 호출하지 않으면 부모 프로세스에서 상속된 데스크톱에 연결됩니다.
- 스레드가 SetThreadDesktop 을 호출하지 않고 데스크톱을 상속하지 않은 경우 시스템은 MAXIMUM_ALLOWED 액세스를 위해 열고 다음과 같이 데스크톱에 연결하려고 시도합니다.
- 프로세스를 만들 때 사용된 STARTUPINFO 구조체의 lpDesktop 멤버에 데스크톱 이름이 지정된 경우 스레드는 지정된 데스크톱에 연결됩니다.
- 그렇지 않으면 스레드는 프로세스가 연결된 창 스테이션의 기본 데스크톱에 연결됩니다.
이 연결 프로세스 중에 할당된 데스크톱은 CloseDesktop 함수를 호출하여 닫을 수 없습니다.
프로세스가 데스크톱에 연결될 때 시스템은 프로세스의 핸들 테이블에서 상속된 핸들을 검색합니다. 시스템은 찾은 첫 번째 데스크톱 핸들을 사용합니다. 자식 프로세스를 특정 상속된 데스크톱에 연결하려면 원하는 핸들만 상속 가능한 것으로 표시되어야 합니다. 자식 프로세스가 여러 데스크톱 핸들을 상속하는 경우 데스크톱 연결 결과는 정의되지 않습니다.
프로세스를 데스크톱에 연결하는 동안 시스템이 열리는 데스크톱에 대한 핸들은 상속할 수 없습니다.
관련 항목
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기