1.1.驱动程序基础
1.1 驱动程序的名称
在历史上,流式接口设备驱动曾经用3个字母的名称和紧随其后的一个数字进行标识,如COM2。这样的安排导致同时加载的同种wince驱动最多智能有10个。应用程序使用3个字母一个数字和一个冒号来引用一个流式接口驱动。wince需要用冒号来识别这是一个驱动程序的名称。
1.2 设备驱动加载过程
当设备管理器加载时,他会在[HKEY_LOCAL_MACHINE]/Drivers中查找一个名为RootKey的字符串键值。该值指向一个指示系统启动时应该加载的驱动程序列表的键值。另外,一个名为dll的可选键会列出总线枚举器,总线枚举器实际上就是读取和翻译注册表结构。如果没有dll键,将会使用默认的BusEnum.dll作为总线枚举器。
键的名称无关紧要,是键中的键值定义了加载哪些驱动及加载的顺序。
dll键指定了实现该驱动的dll名称。Order是值的范围是0--255,该值指定了驱动程序加载的顺序。注册表枚举器将Order小的驱动先加载,Order大的驱动后加载。Prefix值定义了驱动3个字符的名称。Index的值即附加到驱动名称中的数字。
1.3 枚举活动的驱动
寻找设备驱动最让人放心的方法就是,使用findfirstFileex函数,并把函数的fsearchop参数设置为findexsearchlimittodevice。用查找字符串*进行查找,不断的调用findnextFile就能找到一系列以加载的流式驱动。
获知WinCE所加载驱动的更常用的方法是查看HKEY_LOCAL_MACHINE/Drivers/Active注册表目录下的子键。设备驱动管理器会在驱动加载、卸载时动态的更新该目录下的子键。在该目录下,有一个子键列表,每个子键都与一个用ActiveDevice函数加载的活动驱动相对应。
2.编写wince流式设备驱动