我想很多
WinCE
的开发人员,尤其是刚入门并且做驱动开发的工程师,都曾碰到这样一个问题,要编写一个外围设备的驱动,拿最简单的
GPIO
驱动来说,编写驱动本身可能只花了一会儿功夫,可要把编译生成的
DLL
打包到先前做好的操作系统映像当中,最简单也得
MakeImg
一下,还要修改
BIB
文件、注册表文件,以让系统启动的时候就加载该驱动,所有工作都做完了,还得花几分钟下载整个操作系统到内存去运行,这也得要个好几分钟。能力强的人一次成功,不走回头路也就算了。如果驱动编写得有问题,那又得改代码,重新编译,把刚刚所做的事情再做一遍。说出来不怕大家笑话,我刚开始做驱动时就这样,反反复复,半天下来,才调试好一个简单的驱动。而事实上很大一部分时间都浪费在重复操作上。这种调试驱动的方法实在效率太低了。想到
Linux
下面的驱动调试,多方便!直接
INSMOD
一下,应用程序就可以调用,出现问题就
RMMOD
,根本无须来回倒腾操作系统的映像文件。那么,
WinCE
下难道就没有这么简便的方法嘛?答案是肯定的。
闲话少说,进入正题。查找EVC的帮助,发现函数ActivateDevice()可用来加载驱动程序。而这个函数的使用是相当简单的。我就不多说了,贴上一段帮助最能说明问题。当然,你也可以用ActivateDeviceEx()。
HANDLE ActivateDevice (
LPCWSTR lpszDevKey,
DWORD dwClientInfo
);
Parameters
lpszDevKey