'API'에 해당되는 글 2건

  1. 2008.09.11 Windows Power Scheme Management APIs
  2. 2008.09.11 Windows Power Management Structures
2008. 9. 11. 15:20

Windows Power Scheme Management APIs



Windows system 에서 Power Scneme 을 관리하는 API들이다.

음.. 관리라...
일단 존재하지 않는 power scheme을 생성할 수 있을 것이고, 생성되어 있는 power shceme의 정보를 가져오거나 업데이트 할 수 있을 것이고.. 현재 사용되고 있는 power의 정보(데이터, GUID)등을 가져오고나 업데이트 할 수 있을것이고, 마지막으로 존재하는 맘에 들지 않는 power scheme을 제거할 수 있는 등..
뭐 그런것들이 있을것이다.
이런 일들을 하는 API들을 알아본다.


다음과 같은 APIs 를 이용하여 Power Scheme 을 관리할 수 있다.
GetActivePwrScheme() - 현재 사용중인(활성화 된) power scheme의 index를 가져온다.
GetCurrentPowerPolicies() - 현재 사용중인(활성화 된) power shceme의 setting 정보를 가져온다.
SetActivePwrScheme() - 현재 사용중인(활성화 된) power scheme의 setting을 바꾼다.
WritePwrScheme() - 새로운 power scheme 을 생성한다. 이녀석을 적용시키려면 반드시 SetActivePwrScheme()를 사용해야 한다.
DeletePwrScheme() - 존재하는 power scheme 중 원하는 녀석을 삭제한다.

추가로.. scheme을 업데이트 하는 녀석들은 다음과 같다.
WritePwrScheme(), WriteGlobalPwrPolicy(), WritePorcessorPwrScheme()
그리고 이를 적용시키기 위해서는 SetActivePwrScheme() 를 사용해줘야 한다.

용도에 맞게 골라서 사용을 자~알하면 된다.


2008. 9. 11. 10:48

Windows Power Management Structures


Windows system의 API가 제공하는 Power Management관련 structures(구조체)에 대해서 이야기 해보려 한다.

Windows system의 전력관리에 사용되는 구조체들은 다음과 같다.
ADMINISTRATOR_POWER_POLICY
BATTERY_INFORMATION
BATTERY_MANUFACTURE_DATE
BATTERY_QUERY_INFORMATION
BATTERY_REPORTING_SCALE
BATTERY_SET_INFORMATION
BATTERY_STATUS
BATTERY_WAIT_STATUS
DISPLAY_BRIGHTNESS
GLOBAL_MACHINE_POWER_POLICY
GLOBAL_POWER_POLICY
GLOBAL_USER_POWER_POLICY
MACHINE_POWER_POLICY
MACHINE_PROCESSOR_POWER_POLICY
POWER_ACTION_POLICY
POWER_POLICY
POWERBROADCAST_SETTING
PROCESSOR_POWER_INFORMATION
PROCESSOR_POWER_POLICY
PROCESSOR_POWER_POLICY_INFO
SYSTEM_BATTERY_STATE
SYSTEM_POWER_CAPABILITIES
SYSTEM_POWER_INFORMATION
SYSTEM_POWER_LEVEL
SYSTEM_POWER_POLICY
SYSTEM_POWER_STATUS
USER_POWER_POLICY

각각의 내용을 보면, 중복되는것도 있고 포함관계에 있는것도 있고.. 여튼 이리저리 복잡한 듯 하다.
일단 이녀석들의 내용을 알아야 원하는 데이터를 가져오거나 바꿀 수 있을 듯 한데.. -_-;;
귀찮다.. ㅋ

대충 계층도랄까? 포함관계에 있는 녀석들을 보니 이렇더군..
GLOBAL_POWER_POLICY
           - GLOBAL_MACHINE_POWER_POLICY
                      - SYSTEM_POWER_STATUS
           - GLOBAL_USER_POWER_POLICY
                      - POWER_ACTION_POLICY
                                 - POWER_ACTION

POWER_POLICY
           - USER_POWER_POLICY       
                      - POWER_ACTION_POLICY
                                 - POWER_ACTION
           - MACHINE_POWER_POLICY   
                      -  SYSTEM_POWER_STATUS

MACHINE_PROCESSOR_POWER_POLICY   
           -  PROCESSOR_POWER_POLICY   
                      -  PROCESSOR_POWER_POLICY_INFO

SYSTEM_POWER_POLICY   
           -  POWER_ACTION_POLICY
                      - POWER_ACTION
           - SYSTEM_POWER_STATUS
           - SYSTEM_POWER_LEVEL   
                      - POWER_ACTION_POLICY
                                 - POWER_ACTION
                       - SYSTEM_POWER_STATUS

SYSTEM_POWER_CAPABILITIES   
           - BATTERY_REPORTING_SCALE
           - SYSTEM_POWER_STATUS

ADMINISTRATOR_POWER_POLICY   
           - SYSTEM_POWER_STATUS

PROCESSOR_POWER_INFORMATION

POWERBROADCAST_SETTING

SYSTEM_POWER_INFORMATION

SYSTEM_BATTERY_STATE

BATTERY_INFORMATION

BATTERY_MANUFACTURE_DATE

BATTERY_QUERY_INFORMATION  

BATTERY_REPORTING_SCALE

BATTERY_SET_INFORMATION

BATTERY_STATUS

BATTERY_WAIT_STATUS

DISPLAY_BRIGHTNESS

해놓고 보니깐.. 이런 작업을 왜했나 싶은것이.. 필요 없는 짓을 한걸까? ㅋㅋ