Windows Mobile的驱动程序程序实际是一个树状结构。Device.exe负责加载几乎所有的驱动程序,而驱动程序的各种信息是存在于注册表里面。在系统启动阶段,device.exe是不知道有多少驱动是要加载的。他只是找到bus driver,然后由它继续加载所有的驱动,所以bus driver是很重要的驱动程序,是桥梁驱动。
注册表中,HKEY_LOCAL_MACHINE/Drivers的键值RootKey指示了bus driver的位置,一般你会看到Drivers/BuiltIn。那么HKEY_LOCAL_MACHINE/Drivers/BuiltIn下Dll说明的是bus driver的名称。
微软的Ak中是默认有个驱动的BusEnum.dll(在public下有源代码)。这个驱动会枚举BuiltIn下的所有键值,将这些驱动都加载进device.exe。
bus driver OEM是可以替换的。你此时可能回想既然已经有现成的,为什么还要自己写?
(更多内容在我的blogspot)