怎么自动安装驱动?或者动态加载驱动?
驱动有gserial.inf和usbser.sys两个文件,
gserial.inf文件的内容是:
- Python code
[Version]Signature="$Windows NT$"Class=PortsClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}Provider=%MSFT%LayoutFile=layout.infDriverVer=01/03/2010,5.1.2600.2180[Manufacturer]%MFGNAME%=VirComDevice,NT,NTamd64[DestinationDirs]DefaultDestDir = 12[VirComDevice.NT]%DESCRIPTION%=DriverInstall,USB\VID_0591&PID_1982[VirComDevice.NTamd64]%DESCRIPTION%=DriverInstall,USB\VID_0591&PID_1982[DriverInstall.NT]Include=mdmcpq.infCopyFiles=FakeModemCopyFileSectionAddReg=DriverInstall.NT.AddReg[DriverInstall.NT.AddReg]HKR,,DevLoader,,*ntkernHKR,,NTMPDriver,,usbser.sysHKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"[DriverInstall.NT.Services]AddService=usbser, 0x00000002, DriverServiceInst[DriverServiceInst]DisplayName=%SERVICE%ServiceType=1StartType=3ErrorControl=1ServiceBinary=%12%\usbser.sys[Strings]MSFT = "X software"MFGNAME = "X software"DESCRIPTION = "X xx"SERVICE = "Virtual COM Port"我试过用命令行rundll32 setupapi,InstallHinfSection DefaultInstall 132 .\gserial.inf 不起作用
用NSIS的安装包:ExecWait "installdriver.exe $\"$INSTDIR\gserial.inf$\" ${HIK_DEVICEID}" 也不行
用InstallShield安装包,按网上的教程,导入inf后识别不到.dll文件,也不行
另外,怎么动态加载驱动?LoadLibray就可以吗?
[解决办法]
下个一个DPInst.exe,32位和64位的都要下载,
DPInst.exe /PATH YourDriverFoder /F /LM /A
or
在NSIS里:RunDll32 advpack.dll,LaunchINFSection $windir\INF\gserial.inf,DefaultInstall
动态加载驱动,同问,LoadLibray好像是加载dll驱动才可以的
[解决办法]
貌似inf的不用那么复杂啊... 直接对着inf右键 安装 ok.....
[解决办法]
安装驱动就是一个修改注册表的动作,但要使驱动生效,就必须重新启动操作系统,除了技术方面的因素外,这也增加了安全性。
还有一种可以使新加的驱动程序立即生效的方式,但其驱动程序在写法上有很大的限制,很多函数用不了。
具体可以看Rootkit相关的资料。
[解决办法]
试试从命令行安装inf文件的方法:
rundll32 syssetup,SetupInfObjectInstallAction DefaultInstall 128 ./<file>.inf
同理,卸载的方法:
rundll32 syssetup,SetupInfObjectInstallAction DefaultUninstall 128 ./<file>.inf