1.内建的驱动程序与可安装的驱动程序

按照驱动程序导出的接口不同,驱动程序可以分为本地设备驱动程序和流接口驱动程序。

内建驱动程序(Built-in Driver)有时也称为本地驱动程序(Native Device Driver),它们被静态地链接到GWES

可安装的驱动程序(Installable Driver)也称为流设备驱动程序(Streams Device Driver)们是由设备管理器(device.exe)动态加载的用户模式的DLL

只有极少数驱动是混合设备驱动(Hybrid Driver)PC Card Socket是混合设备驱动的一个典型例子。

2.分层的驱动程序和不分层的驱动程序

WinCE的驱动可以是单层的,也可以是PDD+MDD。这没有硬性规定,一个驱动程序可以采用分层结构,也可以采用单层结构。一般来说,单层结构的驱动执行效率更高,而分层结构的驱动方便代码维护和移植。拿串口驱动来说,完全可以采用单层结构。而把它分为PDDMDD,作为一般的开发者,我们只需实现PDD层就可以了,MDD层由微软实现。这样,驱动开发的工作量少很多,而代码的可靠性则有了更好的保证。至于采用哪一种结构的驱动,主要看不同的需求。

3.驱动程序源代码

微软在Platform Builder中为用户提供了绝大多数类型设备驱动程序的源代码,这些源代码由两部分组成:一部分是独立于平台的源代码,位于%_WINCEROOT%\PUBLIC|Common\OAK\DRIVERS文件夹下,另一部分是与平台相关的代码,位于%_WINCEROOT%\PLATFORM下的BSP内。这两部分代码进行链接构成最终的设备驱动程序。