`
isiqi
  • 浏览: 16489213 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

如何控制CE系统的重启或者关机

阅读更多
<!-- google_ad_client = "pub-5414095334113187"; google_ad_width = 336; google_ad_height = 280; google_ad_format = "336x280_as"; google_ad_type = "text_image"; google_ad_channel = ""; //-->
1. 如何控制系统的重启或者关机
可以调用函数ExitWindowsEx, 在Win
CE上,这属于Undocument API,虽然没有公开,但是可以使用。
/*
#define EWX_LOGOFF 0
#define EWX_SHUTDOWN 1
#define EWX_REBOOT 2 重启
#define EWX_FORCE 4
#define EWX_POWEROFF 8 关机
*/
extern "C" BOOL ExitWindowsEx(UINT uFlags, DWORD dwReason);
ExitWindowsEx(EWX_REBOOT, 0); //重启
ExitWindowsEx(EWX_POWEROFF, 0); //关机


2.动态链接库注入机制
在Windows 2000中提供了很多DLL注入机制:
使用注册表来插入DLL
使用Windows挂钩来插入DLL
使用远程线程来插入DLL
使用特洛伊DLL来插入DLL
将DLL作为调试程序来插入
但是,作为嵌入式操作系统,提供的接口少多了,在Smartphone 2002 (基于Windows CE 3.0) 中并不提供动态链接库注入机制,在Smartphone 2003才提供,使用Dll Inject机制,可以在注册表中设置关键字HKEY_LOCAL_MACHINE\System\Kernel\InjectDLL的值,该关键字数据类型为REG_MULTI_SZ,包含一个DLL文件名或者一组DLL文件名(用逗号分离),列出的每个DLL文件名都可以包含一个路径。当系统启动时,列在该键值中的每个DLL会映射到系统加载的每个进程中(Nk.exe和Filesys.exe除外)。
当进程创建时,系统将分配进程的地址空间,接着将可执行文件映像和所有需要的DLL文件(包括HKEY_LOCAL_MACHINE\System\Kernel\InjectDLL注册的所有DLL)映像映射到进程的地址空间中。然后才创建进程的主线程,并使用该线程调用每个DLL的带有DLL_PROCESS_ATTACH值的DllMain函数。当已经映射的所有DLL都对通知信息作出响应后,系统将使进程的主线程开始执行可执行模块的C/C++ Runtime启动代码,然后执行可执行模块的进入点函数(WinMain)。
如果DLL(不包括HKEY_LOCAL_MACHINE\System\Kernel\InjectDLL注册的任何DLL)的任何一个DllMain函数返回FALSE,表明初始化没有取得成功,系统便终止整个进程的运行,从它的地址空间中删除所有文件映像,给使用户显示一个消息框,说明进程无法启动运行。
前面说过,NK.exe和Filesys.exe不受该键值的影响,这主要是由于Windows CE的启动过程造成的[4]。
当系统复位时,CPU将跳转到NK.exe的入口。NK.exe是Windows CE的核心模块,入口的代码实际上是由OEM编写的,而不是Microsoft,因为不同的平台,硬件也不一定相同,因此Windows CE需要OEM编写一些特定的初始化代码,这些代码被并入内核的硬件抽象层(HAL, Hardware Abstraction Layer),当OEM为特定硬件平台建立系统时,HAL将和Windows CE内核代码静态连接而产生NK.exe。
Nk.exe在设计时与文件系统(包括注册表系统、数据库系统)是独立的,也就是说NK.exe不会负责文件系统的初始化,但是在NK.exe初始化过程中要用到注册表数据,因此,当NK.exe启动后,将创建有名事件(Named Events)SYSTEM/FSReady,加载并运行系统程序Filesys.exe, 然后转入睡眠等待事件变为已通知状态。
Filesys.exe负责管理文件系统、数据库函数和注册表。Filesys.exe被加载后,将检测这次启动是冷启动还是热启动。冷启动和热启动的最大区别就是内存中是否存在已初始化的文件系统。
如果是热启动,内存中保留了上次使用的数据,Filesys.exe将使用这个已初始化的文件系统。如果是冷启动,Filesys创建一个文件系统,将空内存文件系统和ROM中的文件合并在一起。
当文件系统存在后,Filesys.exe会创建默认的数据库和注册表,初始化本地语言支持模块(National Language Support, NLS)。
接着Filesys.exe将事件SYSTEM/FSReady置为已通知状态,然后转为睡眠状态等待Nk.exe完成初始化后将其唤醒。
由于事件SYSTEM/FSReady置为已通知状态,NK.exe被唤醒接着运行,此时,注册表已被Filesys.exe创建,NK.exe根据注册表的键值继续运行,如配置虚拟内存管理器,初始化默认处理程序的中断向量表,初始化端口等等,当然,最重要的是通知Filesys.exe可以继续运行。
Filesys.exe被唤醒后,接着进行后续的初始化工作,如根据列在注册表HKEY_LOCAL_MACHINE\System\Events中的名字创建有名事件SYSTEM/PowerManagerReady,SYSTEM/GweApiSetReady,SYSTEM/ShellAPIReady,SYSTEM/BatteryAPIsReady等等,这些有名事件的初始状态都是未通知状态,后面有相应的程序来对其进行设置,如图形窗口和事件管理器(GWE,Graphics Windowing and Event Manager)初始化图形API后,会把有名事件SYSTEM/GweApiSetReady值为通知状态,系统知道图形API有效,可以进行图形绘制。
所以,在Nk.exe和Filesys.exe被加载前,系统不可能去搜索注册表,更谈不上Dll Inject钩子机制。
关于Windows CE的详细的启动步骤请参考MSDN。
分享到:
评论

相关推荐

    CE6.0重启工具

    CE6.0重启工具,可以对车载或手机CE系统进行软件重启,暂不支持CE5.0.

    手机WM5操作系统自动关机源代码并提供手机关机和重启两个可执行文件

    4. **事件处理**:程序需要监听特定的系统事件,例如用户的输入或者电池电量变化,以便在适当的时候启动或停止自动关机计时。 5. **执行文件**:提供的两个可执行文件——关机和重启程序,可能是通过调用系统API...

    CE系统IPL刷机步骤及软件.zip

    在IT行业中,CE系统通常指的是微软的嵌入式Windows CE操作系统,广泛应用于各种手持设备,如数据采集器、条码扫描器等。斑马技术(Zebra Technologies)是一家知名的条码和RFID解决方案提供商,其产品包括Symbol系列...

    wince5.0重启

    9. **系统配置**:开发者可以在Windows CE 5.0的注册表中调整重启相关的设置,比如设置重启延迟时间,以便在关机前完成必要的保存操作。 10. **远程重启**:对于远程管理的设备,可能有支持远程重启的功能,通过...

    wince系统的PDA重启后桌面快捷方式丢失解决办法(优博讯urovo品牌,内含详细操作说明)

    在Windows CE(简称Wince)操作系统中,优博讯(Urovo)品牌的PDA设备经常被用于工业、物流等领域。然而,一个常见的问题是:当这些PDA设备重启后,用户之前创建的桌面快捷方式会消失,这无疑给日常使用带来了不便。...

    CE5.0 工具合集

    9. **Restart.exe**:重启命令,用于重启CE5.0设备,可以快速解决系统问题或更新后重新启动设备。 10. **竖屏工具.exe**:根据名称推测,这是一个调整屏幕方向的工具,可能专为设备在垂直方向显示内容而设计,对于...

    飞歌导航进入CE

    飞歌导航是一款基于Windows CE 5.0的导航系统,以下是对其破解限制、美化和一些有趣的内容的详细介绍。 破解限制 要破解限制,首先需要将教程目录下的所有文件及文件夹复制到SD卡下,然后将汽 车插钥匙后拧一下,...

    SC20关机重启动画制作

    备注:ubuntu系统包含python命令,如果没有,请安装。 logo_gen.py 脚本会包含在释放的包里面。 xxx.png是指图片名称 下载: adb reboot bootloader fastboot flash splash splash.img fastboot reboot 方法二:...

    wince重启代码 不知可行否

    例如,可以使用`CeRmShutdown`函数来请求系统关机或重启。此函数接受一个参数,用于指定操作类型,如`RM_SHUTDOWN_REBOOT`表示重启。以下是调用示例: ```c #include void RestartDevice(void) { DWORD dwResult...

    PPC手机关机软件-智能手机常用软件

    方便好玩实用”,意味着这款软件具有体积小、占用系统资源少的特点,用户可以轻松下载和安装,而且它的功能设计简洁易用,不仅能够满足基本的关机需求,可能还包含了一些附加功能,如定时关机、重启或休眠等,以提高...

    西门子精智触摸屏使用U盘下载程序时报错“出现严重错误,必须关机”处理办法.docx

    5. 二代精简(2nd Basic)屏上的设置屏上电后,进入Windows CE操作系统,将自动显示Start Center。 6. 单击“Settings”按钮打开设置界面。 7. 进入控制面板后,双击“Service & Commissionging ”。 8. 选择...

    towince.exe.软件

    6. **退出Win CE**:完成任务后,需要正确退出Win CE系统,通常通过关闭所有窗口,然后选择关机或重启。不要直接断电,以免数据丢失或系统损坏。 在使用ToWinCe过程中,可能遇到兼容性问题、权限问题或系统稳定性...

    WinCE工具、软件及游戏

    - 开关机与重启:在WinCE系统中,开关机和重启功能通常通过专门的软件实现,这些软件能够提供安全且高效的系统启动和关闭服务,避免因不正确操作导致的数据丢失或系统损坏。 - 内存释放:内存管理对于任何操作系统...

    长虹智能电视刷机数据 仅适用于E9和CE2810H机型 ZLH66Gi机芯 整机USB升级软件强制刷机固件V1.00042

    适用机型:适用于E9和CE2810H机型 USB强制刷机升级 第1步,将升级程序压缩包解压,将刷机文件upgrade ZLH66Gi V1.00xxx.bin拷贝到U...第4步,升级完成后电视会自动重启,等待完全进去系统桌面之后,此时刷机升级完成。

    _冷启动文件丢失问题.pdf

    Windows CE是一个专为嵌入式设备设计的精简操作系统,广泛应用于工业控制、车载电脑、移动设备等领域。该系统具备高效的资源管理能力和灵活的配置选项,但也需要用户具备一定的技术背景来进行正确的维护和故障排除。...

    SIM7600CE-SIM7600C 贴片硬件设计手册

    开机/关机/复位(3.2)部分详细描述了模块的启动、关闭和重启序列。 射频参数(4)部分涵盖了GSM/CDMA1X/UMTS/LTE等通信标准的射频参数(4.1),天线参考设计(4.2)和GNSS参数(4.3)。这对于设计通讯系统以确保...

    WinCE工具和小软件合集包括计算器闹钟电子阅读器万年历画图工具词典等(58款).zip

    YFGo2CE.rar 一体机全屏手写输入法 任务管理 修改端口程序 关机.exe 内存清理.exe 内存释放.exe 内存释放.rar 切换软件工具 、图片预览 媒体播放 工具-中文汉化版 幻 灯 开关任务栏-移动窗口 截图工具 手写板 掌心...

    S730手簿操作手册

    在操作Windows CE 6.0时,用户可以进行日常的桌面操作,包括使用任务栏、系统托盘、任务管理器、控制面板等。此外,还可以通过全局热键快速访问常用功能。用户还能管理蓝牙设备、存储等,以及使用S730提供的各种应用...

    S3C2440WinCE4.2&5.0背光试例&LCD断电-恢复实现

    当系统关机或进入低功耗模式时,保存当前LCD控制器的状态,包括时钟设置、数据总线配置、电源管理等。当系统重新启动时,这些保存的配置会被读取并恢复,确保LCD能快速、正确地初始化。 在WinCE 4.2和5.0中,由于...

Global site tag (gtag.js) - Google Analytics