怎么制作自己的驱动包
1.使用NSIS的InstDrv控件:
下载地址:/InstDrv_plug-in
下载来的安装包里有例子,本人成功用此方法做出了一个安装包,可惜有如下缺点。
缺点:不能做64位系统的驱动安装包
2.用PnPUtil:使用较难一下,略过?
3.在section或函数中添加一行:
ExecWait '$SYSDIR\RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 132 $INSTDIR\<myinf>.inf'
其中的“DefaultInstall”为inf中写出的默认节。
缺点:相当一部分的inf中是没写DefaultInstall的。
4.在section或函数中添加:
${If} ${RunningX64}
ExecWait '"$INSTDIR\drivers\dpinst64.exe" /c /q /sa /sw /PATH "$INSTDIR\drivers"'${Else}
ExecWait '"$INSTDIR\drivers\dpinst32.exe" /c /q /sa /sw /PATH "$INSTDIR\drivers"'${EndIf}
dpinst.exe在微软的WDK中有,在WinDDK\7600.16385.1\redist\DIFx\dpinst。网上应该也下得到吧。
缺点:可惜只能在安装设备管理器中显示有未知硬件的驱动,而不能安装虚拟设备驱动。而且貌似不能安装无数字签名的驱动。
5.在section或函数中添加:
${If} ${RunningX64} ExecWait '"$INSTDIR\devcon\devcon64.exe" install "$INSTDIR\xxx.inf" xxxID' ${Else} ExecWait '"$INSTDIR\devcon\devcon32.exe" install "$INSTDIR\xxx.inf"?xxxID‘ ${EndIf}devcon.exe也是在微软的WDK中有,在WinDDK\7600.16385.1\tools\devcon。上网也下得到
输入inf路径和硬件ID就行了。硬件ID不知道?先手动安装一次,在设备管理器中就能查到。
本人最后就是用这种方法的。其他几种或多或少都有缺点,唯独这种方便可行。
要卸载的话,在Uninstall节中加上:
Section Uninstall
${If} ${RunningX64} ExecWait '"$INSTDIR\devcon\devcon64.exe" remove xxxID' ${Else} ExecWait '"$INSTDIR\devcon\devcon32.exe" remove xxxID' ${EndIf}