WINCE之“系统事件”——System/Events
1、 簡介
Event——事件,相信有線程概念的編程人員都知道,它可以用來同步不同進程、不同線程的通信。在Windows CE 5.0系統(tǒng)中,有一種我稱之為“系統(tǒng)事件”的Event——即由Windows CE系統(tǒng)本身創(chuàng)建的事件。
2、 “系統(tǒng)事件”的生命周期
?????? 首先介紹個注冊表:[HKEY_LOCAL_MACHINE/System/Events],可在WCE5.0文件目錄WINCE500/PUBLIC/COMMON/OAK/FILES/common.reg中找到。這個注冊表中包含了所有的“系統(tǒng)事件名稱”——就是CreateEvent函數(shù)用到的名稱。如下圖2-1所示,其中左邊的"SYSTEM/DevMgrApiSetReady"是系統(tǒng)事件名稱,右邊"Device Manager APIs ready"是這個事件的描述。
圖2-1 系統(tǒng)事件注冊表
在WCE設(shè)備啟動過程中,Filesys.exe會根據(jù)[HKEY_LOCAL_MACHINE/System/Events]中的系統(tǒng)事件名稱來創(chuàng)建這些事件。Filesys.exe在WCE啟動過程中時間很早,所以這些事件也在所有的運行程序和大部分的驅(qū)動程序加載之前在系統(tǒng)中存在了,并且在系統(tǒng)中一只存在,直到WCE系統(tǒng)關(guān)閉,即設(shè)備關(guān)機。
WCE系統(tǒng)事件由系統(tǒng)創(chuàng)建,由系統(tǒng)撤銷。因此,系統(tǒng)事件的生命周期是伴隨著整個WCE系統(tǒng)存在而存在。這也是為什么我稱之為WCE“系統(tǒng)事件”的原因。
3、 用途
?????? WCE系統(tǒng)事件由系統(tǒng)創(chuàng)建,由系統(tǒng)撤銷。那么剩下我們做的就是:OpenEvent、SetEvent等操作了。
?????? 你可以用這些系統(tǒng)事件來同步進程或線程,WCE系統(tǒng)本身就是這樣做的。特別是在WCE設(shè)備啟動過程中,先啟動的程序要等待后啟動的程序狀態(tài)的,系統(tǒng)事件就特別好用。我發(fā)現(xiàn)這系統(tǒng)事件的性質(zhì)是這樣的:手動、初始狀態(tài)為未觸發(fā)。
4、 參考信息
?????? PB幫助:Windows CE Features > Core OS Services > Core OS Design Development > Kernel Overview > System Calls > Determining if an API is Ready
?????? Windows CE Features > Core OS Services > Core OS Design Development > Kernel Overview > System Calls > Determining if an API is Ready
?
?
?????? 僅供參考,如有錯誤,請指教!
總結(jié)
以上是生活随笔為你收集整理的WINCE之“系统事件”——System/Events的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WinCE中断结构分析
- 下一篇: 高通 android平台LCD驱动分析