SetPriorityClass
SetPriorityClass
지정된 프로세스의 우선도 클래스를 설정합니다.
BOOL SetPriorityClass( HANDLE hProcess, // 프로세스 핸들 DWORD fdwPriority // 우선도 클래스 );
KERNEL32.DLL
인수
- hProcess
-
우선도를 변경하는 프로세스의 핸들을 지정합니다.
Windows NT/2000/XP: 이 핸들은 PROCESS_SET_INFORMATION 액세스를 가지고 있지 않으면 안됩니다.
- fdwPriority
-
프로세스의 우선도 클래스를 지정합니다.이하의 값의 어느쪽이든을 지정합니다.
치 의미 0x00000020 (NORMAL_PRIORITY_CLASS) 통상 클래스 특별한 스케줄링을 필요로 하지 않는, 일반적인 프로세스인 것을 지정합니다.
0x00000040 (IDLE_PRIORITY_CLASS) 아이돌 클래스 시스템이 아이돌 상태 때에만 스렛드를 실행하는 프로세스인 것을 지정합니다.아이돌 클래스의 우선권은 child process에 인계됩니다.
0x00000080 (HIGH_PRIORITY_CLASS) 우선 클래스 빨리 실행되지 않으면 안 되는 타임 위기인 태스크를 실행하는 프로세스인 것을 지정합니다.이 우선도 클래스의 프로세스에 속하는 스렛드는, 통상 클래스나 아이돌 클래스의 프로세스에 속하는 스렛드의 것보다 우선해 실행됩니다.이 클래스의 어플리케이션은 거의 모든 CPU 빈 시간을 점유 가능해지기 위해, 이 클래스를 설정하는 경우는 충분히 주의할 필요가 있습니다.
0x00000100 (REALTIME_PRIORITY_CLASS) 리얼타임 클래스 가장 높은 우선 순위 클래스를 가지는 프로세스인 것을 지정합니다.이 우선도 클래스의 프로세스에 속하는 스렛드는, 다른 모든 프로세스(시스템의 중요한 태스크를 실행한다OS 의 프로세스도 포함한다)에 속하는 스렛드의 것보다 우선해 실행됩니다.
0x00004000 (BELOW_NORMAL_PRIORITY_CLASS) Windows 2000/XP: IDLE_PRIORITY_CLASS 이상으로 NORMAL_PRIORITY_CLASS 이하의 우선도를 가지는 것을 나타냅니다.
0x00008000 (ABOVE_NORMAL_PRIORITY_CLASS) Windows 2000/XP: NORMAL_PRIORITY_CLASS 이상으로 HIGH_PRIORITY_CLASS 이하의 우선도를 가지는 것을 나타냅니다.
반환값
성공하면 0 이외의 값이 돌아갑니다.
실패하면 0 하지만 돌아갑니다.확장 에러 정보를 취득하려면 , GetLastError 함수를 사용합니다.
해설
각각의 스렛드는, 프로세스의 우선도 클래스와 스렛드의 상대 우선도로부터 결정되는 기본 우선도를 가집니다.시스템은, 어느 스렛드에 다음의 CPU 의 타임 슬라이스를 줄까를 결정하는데, 모든 실행 가능 스렛드의 기본 우선도를 사용합니다.스렛드의 상대 우선도는 SetThreadPriority 함수로 지정합니다.
대응 정보
Windows 95 이후 / Windows NT 3.1 이후