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