各位大神,本人刚接触WinCE开发,目前手上有一个6.0的项目,看了一些6.0的书,对于驱动程序有些不理解的地方。
6.0的驱动程序有些书里说分为“流接口驱动程序”和“本地驱动程序”。其中流接口驱动程序要提供统一的流标准接口,本地驱动程序则提供不同的操作系统接口。
有些书里说分为“用户态驱动程序”和“内核态驱动程序”。
书上说的都不是特别清楚,现在我的理解就是“流接口驱动程序=用户态驱动程序”,“本地驱动程序=内核态驱动程序”。
不知道我这样理解对不对,希望大神能够给说说这几种驱动程序在6.0中的区别,或者给些资料读读。小弟在这里拜谢了。
WinCE 内核 驱动程序
------解决方案--------------------
流接口驱动程序:
需要自己实现xxx_init,xxx_read,xxx_write,xxx_ioctl,xxx_deinit等这些函数的,xxx是在注册表中配置,devmgr.dll会根据注册表的prefix name和_init,_read这些组合成一个字符串。
本地驱动程序:
这个特指分成驱动程序,即MDD,PDD驱动程序,典型的有nand flash驱动程序,uart驱动程序等,其中PDD驱动需要自己实现MDD定义的函数,供MDD调用。
驱动程序分user space和kernel space,根据注册表中的flag配置不同而不同,其中user space driver被udevice.exe加载。