문제

Windows 서비스에서 스레드 우선 순위를 설정하기 전에 추가 구성이 필요합니까?

내 서비스에는 각각 전화 할 스레드가 몇 개 있습니다. CreateProcess() 기능 외부 응용 프로그램을 시작합니다. 스레드 (또는 프로세스) 우선 순위를 조정하고 싶습니다. normal 또는 lower, 다른 요인에 따라.

문제는 그 것입니다 SetThreadPriority() 오류 6 (유효하지 않은 핸들?)으로 기능이 실패합니다. 나는 얻은 손잡이를 통과합니다 PROCESS_INFORMATION::hThread (전화 후 CreateProcess() 물론), 그래서 나는 손잡이가 ~해야 한다 유효합니다.

또한 SetPriorityClass() 기능도 실패합니다.

서비스는 로컬 사용자로 로그온합니다.

도움이 되었습니까?

해결책

올바른 액세스 권한이 없습니까? SetThreadPriority에 MSDN 말 :

hthread [in] 우선 순위 값을 설정하는 스레드에 대한 핸들.

핸들에는 Thread_set_information 또는 Thread_set_limited_information에 액세스 할 수 있어야합니다. 자세한 내용은 스레드 보안 및 액세스 권한을 참조하십시오.

Windows Server 2003 및 Windows XP/2000 : 핸들에는 Thread_set_information에 액세스 할 수 있어야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top