WINCE的電源管理不但提供了對設備驅動的接口,也提供了對應用程序的接口。也就是說應用程序可以通過這些接口控制電源管理模塊來管理設備和系統(tǒng)的電源狀態(tài)。
有兩個方式來控制電源。第一個方式是應用程序給定一個電源設定。第二個方式是應用程序請求電源狀態(tài)不要低于給定的級別。
第一種方式以下幾種API:
GetSystemPowerState()
SetSystemPowerState()
GetDevicePower()
SetDevicePower()
第二種方式的API:
SetPowerRequirement()
ReleasePowerRequirement()
第二種機制為應用程序提供了強大的能力控制電源管理器調(diào)整設備的電源等級,與其他所有的電源設置相比,它具有很高的優(yōu)先級。舉例來說,假設有一個條形碼閱讀器連接在COM1端口,并且COM1只有在最高電源等級(D0)時才能驅動這個條形碼閱讀器。為了使其正常工作,應用程序將調(diào)用SetPowerRequirement把COM1指定D0狀態(tài)。假設之后串口驅動自身決定降低一個電源等級,驅動調(diào)用DevicePowerNotify通知電源管理器它期望的設備電源狀態(tài),驅動程序的這個請求將不起作用,直到應用程序調(diào)用ReleasePowerRequirement為止。繼續(xù)這個例子,假設這時的系統(tǒng)電源狀態(tài)轉換為低能耗等級,雖然與之相關的COM1電源等級為D3,由于應用程序的電源請求,COM1將繼續(xù)維持在D0狀態(tài)。
在調(diào)用SetPowerRequirement函數(shù)時,指定POWER_FORCE標志將強制設備不進入休眠狀態(tài),即使這時系統(tǒng)已處于休眠狀態(tài)。