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的更多相关文章

  1. 系统事件管理(Events) ---- HTML5+

    模块:events Events模块管理客户端事件,包括系统事件,如扩展API加载完毕.程序前后台切换等. 比如说:网络的链接的和断开这种事件,系统从前台走到后台这种事件: 不包括:点击和滑动页面事件 ...

  2. 【SaltStack官方版】—— Events&Reactor系统—EVENT SYSTEM

    Events&Reactor系统 EVENT SYSTEM The Salt Event System is used to fire off events enabling third pa ...

  3. HTML5支持服务器发送事件(Server-Sent Events)-单向消息传递数据推送(C#示例)

    传统的WEB应用程序通信时的简单时序图: 现在Web App中,大都有Ajax,是这样子: HTML5有一个Server-Sent Events(SSE)功能,允许服务端推送数据到客户端.(通常叫数据 ...

  4. windows 不能在本地计算机启动apache2。有关更多信息,查阅系统事件日志。如果这是非Microsoft服务,请与服务厂商联系,并参考特定服务错误代码1

    今天使用apache的时候又无法启动了,之前也遇到过,这次重点说这一次的情况,其他情况可以查看博主apache相关的其他博文:网上关于apache服务端的设置的很多,但是都不适合我的情况: 一般使用a ...

  5. Systemd初始化进程/RHEL 6系统中System V init命令与RHEL 7系统中systemctl命令的对比

    Linux操作系统的开机过程是这样的,即从BIOS开始,然后进入Boot Loader,再加载系统内核,然后内核进行初始化,最后启动初始化进程.初始化进程作为Linux系统的第一个进程,它需要完成Li ...

  6. win 8系统:System.IO.FileNotFoundException: 未能加载文件或程序集“CefSharp.Core.dll”或它的某一个依赖项。找不到指定的模块

    最近用CefSharp做了一个chrome核心的浏览器. 在win 7.win 10系统上都正常运行,但是在win 8系统上报错了. win 8系统:System.IO.FileNotFoundExc ...

  7. (转载) 上传文件进度事件,进度事件(Progress Events)

    转载URL:https://www.w3cmm.com/ajax/progress-events.html MDN参考:https://developer.mozilla.org/zh-CN/docs ...

  8. Qt 元对象系统(Meta-Object System)(不管是否使用信号槽,都推荐使用)

    Qt 元对象系统(Meta-Object System) Qt的元对象系统基于如下三件事情: 类:QObject,为所有需要利用原对象系统的对象提供了一个基类. 宏:Q_OBJECT,通常可以声明在类 ...

  9. Android零基础入门第36节:Android系统事件的响应

    原文:Android零基础入门第36节:Android系统事件的响应 在开发Android应用时,有时候可能需要让应用程序随系统设置而进行调整,比如判断系统的屏幕方向.判断系统方向的方向导航设备等.除 ...

随机推荐

  1. 文档发布工具mkdocs

    mkdocs是Python的一个对 Markdown 友好的文档生成器.,小巧精美. MkDocs is a fast, simple and downright gorgeous static si ...

  2. Dynamics CRM Import Solution Attribute Display Name description is null or empty

    在做解决方案导入的时候遇到错误,下载错误xml信息后查询报错如下:"Attribute Display Name description is null or empty",字面意 ...

  3. mac os X下的updatedb

    unix或linux下使用locate指令在其数据库中查询文件,使用updatedb可以 更新locate的数据库.而在mac os X下却找不到updated这个程序.使用 man locate查看 ...

  4. androidpn-server笔记及BUG修改

    上篇讲了androidpn的client端,这篇该讲一下我使用androidpn-server端的笔记了. 这里我使用的androidpn是tomcat版的,由不知哪位大神移植并修复了部分bug的版本 ...

  5. 如何判断webview是不是滑到底部

    getScrollY()方法返回的是当前可见区域的顶端距整个页面顶端的距离,也就是当前内容滚动的距离. getHeight()或者getBottom()方法都返回当前webview这个容器的高度 ge ...

  6. 如何在Cocos2D游戏中实现A*寻路算法(七)

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...

  7. 海量数据挖掘MMDS week6: 支持向量机Support-Vector Machines,SVM

    http://blog.csdn.net/pipisorry/article/details/49445387 海量数据挖掘Mining Massive Datasets(MMDs) -Jure Le ...

  8. android sensor架构

    Android Sensor 架构深入剖析 作者:倪键树,华清远见嵌入式学院讲师. 1.Android sensor架构 Android4.0系统内置对传感器的支持达13种,它们分别是:加速度传感器 ...

  9. TCP的ACK确认系列 — 延迟确认

    主要内容:TCP的延迟确认.延迟确认定时器的实现. 内核版本:3.15.2 我的博客:http://blog.csdn.net/zhangskd 延迟确认模式 发送方在发送数据包时,如果发送的数据包有 ...

  10. mixer: mysql协议分析

    综述 要实现一个mysql proxy,首先需要做的就是理解并实现mysql通讯协议.这样才能通过proxy架起client到server之间的桥梁. mixer的mysql协议实现主要参考mysql ...