概述
本过程在原有32位驱动项目与驱动文件(INF文件)的基础上修改。
一、编译vdw_wdm.lib for AMD64
1、安装VC++6.0
2、安装DriverStudio_3.2
3、安装Windows 2003 DDK
4、用VC++6.0打开VdwLibs.dsw(位于DriverStudio安装目录CompuwareDriverStudioDriverWorkssource)项目,在FileView栏将VdwLibs files右键设为活动工程。
5、选择菜单栏 组建(Build)->批组建(Batch Build),勾选VdwLibs - Win32 AMD64 WDM Checked,按Build。
6、选择菜单栏 DriverStudio->DDK Build Settings。在DDK栏填入Windows 2003 DDK目录,例:“D:WINDDK3790.1830”。按OK。
7、选择菜单栏 DriverStudio->Build with BUILD.EXE,即可(直接用VC6.0build报错)。
解释:工程用到vdw_wdm.lib,因此首先需要编译64位的vdw_wdm.lib。vdw_wdm.lib是DriverStudio_3.2带有的库,必须先经过编译VdwLibs.dsw项目生成库文件才能使用。DriverStudio_3.2不支持WDK,需用DDK编译,编译生产库位于CompuwareDriverStudioDriverWorkslibamd64checked目录内。查网络说AMD64比IA64兼容性更好,未验证过。
二、编译sys文件
1、安装GRMWDK_EN_7600_1,即WDK。
2、打开WDK 7600.16385.1->Build Environments->Windows 7->x64 Checked Build Environment。
3、将路径cd入驱动项目,输入命令build回车即可。此步骤不会将此项目全部编译成功,但足以生产sys文件(提示 1 executable built)。
4、生产的sys文件位于驱动项目driverobjchk_win7_amd64amd64目录中。
解释:移植驱动到win7 64位系统,WDK带有此编译环境可直接使用。编译的项目带有一个driver和一个app工程,我不需要此app(已淘汰),故在直接使用win7 64bit编译环境(没有vs)的情况下app编译出错(未处理),XP系统上VS编译出的纯app程序在win7 64位系统上与此sys文件连接良好,未发现bug。
三、手动修改INF文件
原32位:
[Manufacturer]
%MfgName% = XXX
[XXX]
; DisplayName Section DeviceId
%XX_DeviceDesc%=YY, USBVID_A133&PID_C001
; --------- Windows NT -----------------
[YY.NT]
....
[YY.NT.Services]
....
修改64位
[Manufacturer]
%MfgName% = XXX,NTAmd64
[XXX.NTAmd64]
; DisplayName Section DeviceId
%XX_DeviceDesc%=YY, USBVID_A133&PID_C001
; --------- Windows NT -----------------
[YY.NTAMD64]
....
[YY.NTAMD64.Services]
.....
解释:关于INF文件,具体可以参考htp://blog.csdn.net/whatday/article/details/10608431,说的挺详细的,没找到原创。。
最后一个问题就是驱动的数字签名问题,这个需要用RMB买。。到写这个为止还没找到不用RMB的方法(有点失败。。求指导。。。)。
绕过办法:
1、可以每次开机F8,选禁用驱动程序签名强制。
2、下载dseo13b.exe软件,写入一个测试签名,使能系统测试模式,重启,永久有效(就是右下角有个水印= =)。
最后
以上就是和谐芒果为你收集整理的32位USB设备驱动工程移植64位编译(用到vdw_wdm.lib)的全部内容,希望文章能够帮你解决32位USB设备驱动工程移植64位编译(用到vdw_wdm.lib)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复