시스템 절전 모드 조건
시스템에서 사용자 또는 애플리케이션 활동이 있다고 판단하는 한 절전 모드로 들어가지 않습니다. 시스템은 사용자 입력 또는 네트워크 통신과 같은 특정 활동을 검색할 수 있습니다. 그러나 시스템에서 검색할 수 없는 다른 활동이 있습니다. 예를 들어 프레젠테이션 애플리케이션에는 화면이 표시되어야 합니다. 그러나 프레젠테이션 중에 애플리케이션이 유휴 상태이므로 시스템에서 디스플레이가 꺼지는 것처럼 보일 수 있습니다.
애플리케이션이 사용 중임을 시스템에 알리려면 SetThreadExecutionState 함수를 사용합니다. 이 함수는 애플리케이션이 실행되는 동안 시스템이 절전 모드로 전환하거나 디스플레이를 끌 수 없게 합니다.
프레젠테이션 및 멀티미디어 애플리케이션은 시스템에서 디스플레이 디바이스를 절전 모드로 전환하지 않아야 함을 알 수 있도록 ES_DISPLAY_REQUIREDSetThreadExecutionState 함수를 호출해야 합니다. 들어오는 팩스를 관리하기 위한 도구와 같은 이벤트 처리 애플리케이션은 ES_SYSTEM_REQUIRED사용하여 SetThreadExecutionState를 호출하고, 이벤트를 처리한 다음, 시스템이 절전 모드로 돌아갈 수 있도록 플래그를 지워야 합니다. 시스템에서 일반적으로 사용자 입력으로 작업을 결정할 수 있으므로 대부분의 생산성 애플리케이션은 SetThreadExecutionState 를 사용할 필요가 없습니다.
마지막 사용자 입력 이후 시간을 유지하기 위해 시스템은 디스플레이 유휴 타이머와 시스템 유휴 타이머를 사용합니다. 시스템은 유휴 타이머를 전원 계획에 구성된 값과 비교합니다. 디스플레이 유휴 타이머 값이 표시 제한 시간 값보다 크고 ES_DISPLAY_REQUIRED SetThreadExecutionState를 호출하여 디스플레이를 요청한 스레드가 없는 경우 시스템은 디스플레이를 해제합니다. 마찬가지로 시스템 유휴 타이머가 시스템 제한 시간 값보다 크고 ES_SYSTEM_REQUIREDSetThreadExecutionState를 호출하여 시스템을 요청한 애플리케이션이 없는 경우 시스템은 절전 모드로 전환됩니다.
시스템은 SetThreadExecutionState라는 애플리케이션 수를 유지 관리합니다. 시스템은 SetThreadExecutionState 를 호출하는 각 스레드를 추적하고 그에 따라 카운터를 조정합니다. 이 카운터가 0에 도달하고 사용자 입력이 없으면 시스템이 절전 모드로 들어갑니다.
전원이 부족하면 애플리케이션에서 사용자 개입을 요청하거나 시스템 자체 일시 중단을 요청할 수 있습니다. SetSuspendState 함수를 사용하여 시스템 작업을 일시 중단할 수 있습니다.
시스템이 자동으로 절전 모드를 해제하는 경우(PBT_APMRESUMEAUTOMATIC) 타이머와 관련이 없습니다. 자세한 내용은 시스템 절전 모드 해제 이벤트를 참조하세요.
절전 모드 입력
시스템이 절전 모드로 들어가면 전체 시스템 및 모든 애플리케이션의 상태가 자동으로 유지됩니다. 따라서 대부분의 애플리케이션은 특별한 조치를 취할 필요가 없습니다. 시스템 전환 전에 특정 작업을 수행해야 하는 애플리케이션은 전원 이벤트에 등록할 수 있습니다.
시스템에서 PBT_APMSUSPEND 이벤트를 보내면 시스템이 절전 모드로 전환하기 전에 각 애플리케이션에서 필요한 작업을 수행하는 데 2초가 걸립니다. 애플리케이션은 할당된 시간에 모든 작업을 완료하도록 이 이벤트에 대한 응답으로 수행하는 작업을 제한해야 합니다.
관련 항목