上次写过关于CE的中断处理机制以后,一直有人要求能以实际的程序体现出来,但是出于各种因素,一直未能成文。在此表示歉意,此次我们就一起来分析驱动程序中的一种,然后顺便看一下中断在驱动程序中的体现,对WIN32底层的内核对象不熟的话,可要先补一补这方面的知识哦。 还是先从驱动程序说起。CE的驱动程序架构与桌面WINDOWS有很大的不同,因此,桌面WINDOWS下的设备驱动程序无法在CE中使用。通常桌面WINDOWS驱动程序的体现形式是VXD,SYS等,在CE中,则统一体现为DLL,也就是说,只要符合要求的DLL都可以成为CE下的设备驱动程序,前提是只要在注册表中注册过。 从驱动程序的结构上来看,CE下的驱动程序结构有两种,单体结构和分层结构。单体结构即将通用的驱动程序接口和特定的硬件接口在同一层面上实现,以减少两层之间的调用和协调,从而可以提高效率,通常用于非常关键的系统特性上。分层结构则被广泛应用,将同一设备的驱动程序分成两层:平台相关驱动PDD和模型设备驱动MDD。前者和具体的设备绑定在一起,是针对特定设备特定型号的,后者是同一类设备驱动中公用的部分,主要由CE的系统支持提供,通常不需要修改。 在类别上来看,主要的类别有两种,一种是内置的驱动程序,一种是流接口的驱动程序。我平此次先来看内置的驱动程序。 内置的驱动程序是由CE系统定义了接口函数,开发人员只要实现这些函数即可,当然这个实现必然要对应你自己用到的硬件设备。常见的比如键盘驱动,鼠标驱动,显示卡驱动,电池驱动等都属于这一类,拿键盘驱动来说,我们可以通过DEF文件来得到系统规定的接口函数如下: KeybdDriverInitializeEx KeybdDriverPowerHandler KeybdDriverGetInfo KeybdDriverSetMode KeybdDriverInitStates KeybdDriverVKeyToUnicode KeybdDriverMapVirtualKey LayoutMgrGetKeyboardType IL_00000409
|
WinCE 5.0边做边学(7)
最新推荐文章于 2011-10-20 14:18:37 发布