您的位置:逆风者 VC++ 正文
 添加时间:2007-09-01 原文发表:2007-08-31 人气:72 来源:vckbase.com

本文章共3097字,分2页,当前第2页,快速翻页:
 

三、内核初始化函数执行完毕后开始按如下步骤执行:

  1. 内核创建用于与filesys.exe同步的事件对象SYSTEM/FSReady,之后启动filesys.exe。启动filesys.exe的意义是让filesys.exe读取注册表数据。
  2. 内核等待事件SYSTEM/FSReady被触发,这个事件是由filesys.exe在做完一系列工作后触发。这一系列的工作内容如下:
    逆@风@者
    2.1 先检测这是一次冷启动还是热启动,如果是冷启动,那么初始化对象存储内存区域。
    2.2 调用OEMIoControl函数,I/O控制代码为IOCTL_HAL_INIT_RTC,也就是初始化RTC。
    2.3 初始化数据库子系统和API、文件系统API、消息队列API。
    2.4 如果操作系统镜像(nk.bin)包括RAM文件系统,那么读取Initobj.dat文件内容后创建一个RAM文件系统。
    2.5 初始化注册表(在内存中形成注册表)。
    2.6 如果此时device.exe没有启动,那么读取HKEY_LOCAL_MACHINE\System\StorageManager下"Dll"的值(这个值为存储管理器所在的.dll的文件名)并加载到内存。加载之后创建一个线程专用于初始化存储管理器,初始化之后此线程结束。
    2.7 初始化NLS(national language support)。关于NLS请参见我的文章《CE下中文输入法编辑器》。
    2.8 为数据库引擎设置本地ID。
    2.9 读取Initdb.ini文件,安装在对象存储中的数据库。
    2.10 触发SYSTEM/FSReady事件,之后filesys.exe处于等待状态,等待内核发通知给它。
  3. 此时注册表已经存在于内存当中,内核开始读取如下位置数据:
            HKEY_LOCAL_MACHINE\Loader\SystemPath
    
            HKEY_LOCAL_MACHINE\SYSTEM\OOM\cbLow and cpLow
    
            HKEY_LOCAL_MACHINE\SYSTEM\KERNEL\InjectDLL
    
            HKEY_LOCAL_MACHINE\MUI\Enable and SysLang
    
            HKEY_CURRENT_USER\MUI\CurLang
  4. 内核设置低内存处理(out of memory)。低内存处理是指当前可用的内存非常少时,内核所做的解决方案(CE帮助文档中有详细说明)。
  5. 内核在做好了上述工作后通知filesys.exe,由filesys.exe做其余工作。filesys.exe所做的工作内容如下:
    5.1 读取HKEY_LOCAL_MACHINE\System\Events 下包含的所有事件对象名称并一一创建。
    5.2 读取HKEY_LOCAL_MACHINE\Init 下包括的所有应用程序名称并一一启动。如果device.exe在列表中并且此时它已经启动了,那么触发SYSTEM/BOOTPHASE2事件,这会使device.exe重新读取注册表数据来完成最后的驱动程序初始化。
    5.3 初始化时间区域(time zone)。

写作时间:2005-01-11

  如果您有技术问题向我咨询,请登录天极网嵌入式开发论坛,本人将在此论坛回复您的问题。在论坛上交流会更方便些,其它网友也可以回答参与,弥补了我的不足。

未经本文作者同意,不准擅自转载本篇文章。联系作者请邮至windowsce@tom.com或fllsoft@sina.com
 


 
本文章更多内容<<上一页 - 1 - 2
相关文章

如何获取其它进程中窗口的窗口过程
深入 CSocket 编程之阻塞和非阻塞模式
如何获取网页中的密码和文本输入框的内容
OAL点点滴滴(二)
WTL字体类
介绍一个控制并行端口的MFC类
.NET Remoting与分布式应用开发——初识 Re
浅析三线程程序开发思路与实现
带光圈文字输出的实现
WinCE4.2 下轻松调用 Windows Media Player
精通VC与MATLAB联合编程<十>——综合举例二
如何播放 WAV 文件?
一个原创的仪表控件
WHO AM I?看定自己的耕垦区域
使用MFC的数组类
乱砍设计模式之零
通过异步程序调用(APC)实现的定时功能
视频采集
创建客户区窗口,列表框之间项的拖拽操作
关于托盘的一点总结

相关评论


本文章所属分类:首页 VC++

  热门关键字: