读书人

如何自动安装驱动?或者动态加载驱动

发布时间: 2012-03-03 15:33:02 作者: rapoo

怎么自动安装驱动?或者动态加载驱动?
驱动有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

读书人网 >VC/MFC

热点推荐