Wince 开发深入资料
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Web Server的源程序
Windows CE提供了Web Server的源代码, 用户可以在
C:\WINCE500\PRIVATE\SERVERS\HTTP
目录下看到相关代码。 用户可以在微软授权的情况下使用并修 改其代码。
服务的启动
Windows CE的服务有两种启动方式 通过注册表中设置相应的注册表项, 系统启动时,让Service.exe自动加载服 务。 应用程序使用函数加载服务
服务的自启动
当Windows CE启动时,Service.exe搜索 系统注册表中的 HKEY_LOCAL_MACHINE\Service 然后枚举Service下的所有子键,并依次 Service 加载所有的服务。
LIBRARY HTTPD EXPORTS HttpInitialize PRIVATE HttpdStart PRIVATE HttpdStop PRIVATE HttpdStopAndRestart HTP_Init PRIVATE HTP_Deinit PRIVATE HTP_Open PRIVATE HTP_Close PRIVATE HTP_Read PRIVATE HTP_Write PRIVATE HTP_Seek PRIVATE HTP_IOControl PRIVATE HTP_PowerUp PRIVATE HTP_PowerDown PRIVATE HttpInitializeFromExe PRIVATE
服务的手工加载
应用程序通过服务的API函数动态加载服 务程序。 Windows CE提供ActivateService()函数来 实现服务的动态加载。
独立服务(Standlone Service)
一般情况下,Service.exe进程负责加载所 有的服务。 在一些特殊情况下,可能需要将一个服 务由Service.exe进程单独加载,从而实现 与其他服务的隔离。 如果服务在Service.exe进程中单独加载, 这个服务称为独立服务。
独立服务的特点
独立服务不能被应用程序使用CreatFile() 和GetServiceHandle()函数打开。 并不是所有的服务都支持被配置成独立 服务,如Web Server。 独立服务独立占用内存的一个Slot,需要 统筹考虑Slot资源的调配。
独立服务的实现
要把某一个服务配置成独立服务,只需 配置注册表键
超级服务与网络服务
超级服务实现了Service.exe对某些端口的 监听,当有客户连接时,Service.exe会通 知相应的服务程序去处理该请求。 网络服务大都是超级服务,有了超级服 务,一些使用网络提供的服务将会大大 简化。
超级服务的配置
要把某个服务配置为超级服务,只需在注册表 中把
HKEY_LOCAL_MACHINE\Service\服务\
下的Context项设置为1。 当服务管理器在加载该服务时,会使用 ServiceIoControl()函数向服务发送相关控制字。 如果服务也支持超级服务,只需在其 IOControl()接收该控制字,并返回True,就可 以启动超级服务了。
配置端口号
服务管理器自动侦听的端口也可在注册 表中配置。 端口号只需在注册表
HKEY_LOCAL_MACHINE\Service\服务 \Accept
下面增加相应项即可 服务管理器会读取注册表,然后调用 Socket函数侦听相应的端口。
Hale Waihona Puke Baidu
超级服务的过程
当客户端在相关端口有请求时,服务管 理器会向服务发出 IOCTL_SERVICE_CONNECTION消息, 同时把socket的句柄作为参数传递给服务 程序。 服务程序对连接进行进一步的控制和操 作。
典型的超级服务:Web Server
Windows CE的Web Server是Windows IIS 的一个子集,提供了将嵌入式设备配置 为一个Web Server的功能。 嵌入式Web Server在实际的应用中具有非 常实用的意义,尤其在无线自动检测有 更重要的作用。
Web Server的声明文件(def)
项目11:基于 的嵌入式Web服务器 (2) 项目 :基于Windows CE 5.0的嵌入式 的嵌入式 服务器 )
本节课程主要知识点 Windows CE服务程序
重点和难点
重点 Windows CE服务 难点 服务中的网络服务
Windows CE服务程序 服务程序
Windows CE服务程序
在设备中,经常需要有一些程序从开机 就运行,一直运行到设备关闭为止,在 整个设备开机期间不会关闭。 这类程序一般是在系统的后台为用户提 供一些服务。 这类程序被称为服务(Service)程序。
Service.exe
在Windows CE中,有许多网络服务器都 是通过服务实现的。如文件服务器、FTP 服务器、Telnet服务器、打印服务器及 HTTP服务器。 服务管理器是由进程Service.exe来实现的, 其工作机制与功能与设备管理器 Device.exe非常相似。 Device.exe负责加载所有的驱动程序, Service.exe负责加载所有的服务。
HKEY_LOCAL_MACHINE\Service\服务\
下的Context项。 如果Context项设为2,则表明该服务为独 立服务。
超级服务(Super Service)
在Windows CE下,许多服务程序都是作 为网络服务服务器存在的。这些服务都 会侦听某个网络端口,当有客户连接这 些端口时,服务程序会给客户提供相应 的服务。 这样的服务,Windows CE称之为超级服 务。
Service的加载
Service.exe是操作系统的一个可行组件, 在系统启动时被内核加载。 Service.exe加载前要求Device.exe先行加 载。
服务程序的实现
在Windows CE中,实现一个服务程序与 实现流式接口驱动程序非常相似,所有 有服务程序均以动态链接库提供,并导 出其中的相关接口函数。 与流式接口驱动程序类似,服务程序有 也一个3字符的Prefix和一个Index,这些 信息也在注册表中被设置。