WINCE之“系统事件”——System/Events
1、 簡介
Event——事件,相信有線程概念的編程人員都知道,它可以用來同步不同進程、不同線程的通信。在Windows CE 5.0系統中,有一種我稱之為“系統事件”的Event——即由Windows CE系統本身創建的事件。
2、 “系統事件”的生命周期
?????? 首先介紹個注冊表:[HKEY_LOCAL_MACHINE/System/Events],可在WCE5.0文件目錄WINCE500/PUBLIC/COMMON/OAK/FILES/common.reg中找到。這個注冊表中包含了所有的“系統事件名稱”——就是CreateEvent函數用到的名稱。如下圖2-1所示,其中左邊的"SYSTEM/DevMgrApiSetReady"是系統事件名稱,右邊"Device Manager APIs ready"是這個事件的描述。
圖2-1 系統事件注冊表
在WCE設備啟動過程中,Filesys.exe會根據[HKEY_LOCAL_MACHINE/System/Events]中的系統事件名稱來創建這些事件。Filesys.exe在WCE啟動過程中時間很早,所以這些事件也在所有的運行程序和大部分的驅動程序加載之前在系統中存在了,并且在系統中一只存在,直到WCE系統關閉,即設備關機。
WCE系統事件由系統創建,由系統撤銷。因此,系統事件的生命周期是伴隨著整個WCE系統存在而存在。這也是為什么我稱之為WCE“系統事件”的原因。
3、 用途
?????? WCE系統事件由系統創建,由系統撤銷。那么剩下我們做的就是:OpenEvent、SetEvent等操作了。
?????? 你可以用這些系統事件來同步進程或線程,WCE系統本身就是這樣做的。特別是在WCE設備啟動過程中,先啟動的程序要等待后啟動的程序狀態的,系統事件就特別好用。我發現這系統事件的性質是這樣的:手動、初始狀態為未觸發。
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
?
?
?????? 僅供參考,如有錯誤,請指教!
總結
以上是生活随笔為你收集整理的WINCE之“系统事件”——System/Events的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WinCE中断结构分析
- 下一篇: java信息管理系统总结_java实现科