13. [pywin32] GetProcess... 관련 함수 - 3

pywin32/win32process|2020. 12. 29. 00:46

1. int = GetPriorityClass(handle)

 

프로세스의 우선순위를 클래스를 반환하는 함수입니다.

 

인자로는 handle : PyHANDLE 가 있습니다.

 

handle: 프로세스의 핸들값입니다.

 

리턴값은 다음과 같습니다.

이름 의미
0x8000 win32process.ABOVE_NORMAL_PRIORITY_CLASS NORMAL 이상, HIGH 이하의 우선순위 클래스
0x4000 win32process.BELOW_NORMAL_PRIORITY_CLASS IDLE 이상, NORMAL 이하의 우선순위 클래스
0x0080 win32process.HIGH_PRIORITY_CLASS NORMAL, IDLE 보다 높은 우선순위 클래스
0x0040 win32process.IDLE_PRIORITY_CLASS 화면 보호기 처럼 유휴 상태에서 동작하는 우선순위
0x0020 win32process.NORMAL_PRIORITY_CLASS 기본 보통 우선순위 클래스
0x0100 win32process.REALTIME_PRIORITY_CLASS 실시간 우선순위 클래스, 남용하면 마우스 입력 같은 기본적인 입출력 프로세스가 우선순위를 빼앗길 수 있음

 

 

2. int, int = GetProcessAffinityMask(hProcess)

 

CPU 선호도(Affinity)를 반환하는 함수입니다.

 

인자로는 hProcess : PyHANDLE 가 있습니다.

 

hProcess: 프로세스의 핸들값입니다.

 

리턴값은 int,int 로 비트마스크 값이며 앞에는 프로세스 선호도 값이고, 뒤에는 시스템의 선호도 값을 나타냅니다.

 

 

3. bool = GetProcessPriorityBoost(Process)

 

프로세스의 동적인 우선순위 레벨 상승이 가능한지 여부를 반환하는 함수입니다.

 

인자로는 Process : PyHANDLE가 있습니다.

 

Process: 프로세스의 핸들값입니다.

 

리턴값이 True 일 경우, 동적 상승이 불가능하며, False일 경우, 동적 상승이 가능하다는 뜻으로 True와 False가 반대인 것에 주의해야 합니다.

 

 

4. int,int = GetProcessShutdownParameters()

 

현재 프로세스의 셧다운 우선순위와 플래그를 반환합니다.

 

리턴값은 int, int로 앞에는 셧다운 우선순위, 뒤에는 셧다운 플래그를 나타냅니다.

 - 셧다운 우선순위

의미
0x000 - 0x0FF 시스템 프로세스가 셧다운 마지막에 종료됨
0x100 - 0x1FF 응용프로그램 프로세스가 셧다운 마지막에 종료됨
0x200 - 0x2FF 응용프로그램 프로세스가 셧다운 중간에 종료됨
0x300 - 0x3FF 응용프로그램 프로세스가 셧다운 처음에 종료됨
0x400 - 0x4FF 시스템 프로세스가 셧다운 처음에 종료됨

모든 프로세스는 0x280 우선순위를 기본으로 갖습니다.

 

 - 셧다운 플래그

이름 의미
0 - 기본값
1 win32con.SHUTDOWN_NORETRY 프로세스를 종료하는데 지정된 시간보다 오래 걸릴 시 재시도 대화상자를 띄위지 않고 프로세스를 종료함

 

 

5. int,int = GetProcessWorkingSetSize(hProcess)

 

워킹 셋 사이즈를 반환하는 함수입니다.

 

인자로는 hProcess : PyHANDLE 가 있습니다.

 

hProcess: 프로세스의 핸들값입니다.

 

리턴값은 int, int로 최소 워킹 셋 사이즈(바이트) 와 최대 워킹 셋 사이즈(바이트)를 나타냅니다.

 

이 함수가 앞에서 다뤘던 GetProcessMemoryInfo 함수의 리턴값과 관련이 있을 것 같은데 이건 아직 잘 모르겠군요...

 

 

import win32process

curPs = win32process.GetCurrentProcess()

priorityClass = win32process.GetPriorityClass(curPs)
affinityMask = win32process.GetProcessAffinityMask(curPs)
priorityBoost = win32process.GetProcessPriorityBoost(curPs)
shutdownParam = win32process.GetProcessShutdownParameters()
workingSize = win32process.GetProcessWorkingSetSize(curPs)

print(f"priorityClass : {priorityClass}")
print(f"affinityMask : {affinityMask}")
print(f"priorityBoost : {priorityBoost}")
print(f"shutdownParam : {shutdownParam}")
print(f"workingSize : {workingSize}")

현재 프로세스의 핸들값을 이용했습니다.

실행결과입니다

 

 

 

 

 

반응형

댓글()