本文主要探讨了设备管理程序在实时多任务系统内核中的角色,特别是在Windows CE系统中的工作原理和功能。设备管理程序是用户层的一部分,与内核、注册表和流接口驱动程序DLL紧密相关,负责初始化、注册、发现和卸载设备驱动。
在系统启动或接收到新设备信息时,设备管理程序会加载相应的驱动程序。例如,当用户插入一个PC卡时,程序会自动寻找并加载对应的驱动。它通过向内核注册特定文件名,将应用程序的流接口函数映射到驱动程序实现,确保应用程序能够与设备通信。此外,设备管理程序还会通过读取和修改注册表值来加载和跟踪驱动程序,以及在设备不再需要时卸载驱动,如用户移除PC卡后卸载PC卡设备的驱动。
在Windows CE中,驱动程序有两类主要模型:本机驱动程序和流接口驱动程序。本机驱动程序适用于低级别、内置设备,它们提供定制的接口,可以通过微软提供的驱动样本进行移植和定制。而流接口驱动程序是一种基本的设备驱动类型,实现一组固定的流接口函数,几乎所有的CE设备都可以采用这种模型。GWES(Graphical Windows Environment Subsystem)负责加载一些关键驱动,如键盘/鼠标、触摸屏、显示、电池和通知LED等,而设备管理器则负责加载如PCMCIA主机控制器、USB主机控制器、网络驱动等本地驱动以及流接口驱动,如音频、串行口和并行口驱动等。某些驱动,如PCCard客户端驱动、USB客户端驱动和NDIS微型端口驱动,则在需要时动态加载。
中断处理是内核功能的重要部分,包括内核模式的中断服务例程(ISR)和用户模式的中断服务线程(ISP)。ISR通常由短小的汇编代码组成,负责接收中断并向内核返回中断号。ISP运行在用户模式下,用于执行更复杂的中断处理任务。
总结起来,设备管理程序在实时多任务系统内核中起着关键作用,协调硬件设备和软件应用之间的交互。它不仅管理驱动程序的加载和卸载,还参与设备的识别和中断处理,确保系统的稳定运行。同时,Windows CE的驱动程序模型提供了一种灵活的方法,支持不同类型的设备和功能需求。