1.公司有个usb驱动,原来只支持win7以上的系统,有客户提出要支持 xp和2003系统。
2.usb 驱动原来是基于wdf开发的,想适配xp,但是有不能改接口,所以最好的方案就是复用原来的wdf的驱动代码;
3. 要用wdf,又要支持xp,只能用wdk7600 以下的版本。
4.移植遇到的问题
4.1 xp的内存分配,wdk7600的wdm.h文件没有 NonPagedPoolEx的 POOL_TYPE,而原来由于win8以上的系统安全性考虑, WdfMemoryCreate分配的内存是NonPagedPoolEx,
这个地方直接修改成NonPagedPool。
4.2 安装wdk7600后,参考usbsamp的例子修改,将里面的.c,.h等文件删掉,然后替换为我们的驱动文件,然后修改source,.inx等文件,主要是将 驱动的名字 修改为我们驱动的名字xxx。
4.3.对照我们的inf修改,将vid,vid等信息修改掉;
4.4. 使用wdk7600提供的编译环境,切换到驱动目录,输入build,就能编译出新的驱动。
4.5.运行驱动,ok。
4.6. 编译xp,发现没有xp 64bit的编译环境,直接复用 windows server 2003的环境编译 64bit的驱动。