INF 右键安装驱动以及卸载

INF 右键安装驱动以及卸载

之前写过一篇文章是关于INF文件详解的,大家可以参看INF文件详解,这次写的是关于INF右键安装,这样比较方便。卸载的话也是一句话,可以大大减少安装时间;

先将INF文件内容贴上来:


; OsnDf.inf
;
; Installation file (.inf) for Infocore Corporation OsnDiskCopy driver.
;
; (c) Copyright 2007-2008 Infocore Corporation
;

[Version]
Signature="$Windows NT$"
Provider=%StorTrust%
ClassGUID={4D36E967-E325-11CE-BFC1-08002BE10318}
Class=DiskDrive
DriverVer=01/16/2001, 4.0.0

[DestinationDirs]
DefaultDestDir   = 12

[DefaultInstall]
CopyFiles           =OsnDSS.Files
OptionDesc          =%StorTrust.DeviceDesc%
AddReg              = OsnDSS.AddReg

[DefaultInstall.Services]
AddService         = OsnDSS,, OsnDSS_Service_Inst, OsnDSS_EventLog_Install

[DefaultUninstall]
DelFiles          =OsnDSS.Files
DelReg            =OsnDSS.DelRegistry

[DefaultUninstall.Services]
DelService       =OsnDSS,0x00000200,System,

[OsnDSS.AddReg]
; append this service to existing REG_MULTI_SZ list, if any
HKLM,%OsnDSSRegistery%,"UpperFilters",0x00010008,"OsnDSS"

[OsnDSS.DelRegistry]
HKLM,%OsnDSSRegistery%,"UpperFilters",0x00018002,"OsnDSS"

;
; File sections
;

[OsnDSS.Files]
OsnDSS.sys

[OsnDSS_Service_Inst]
DisplayName    = %OsnDSS.SvcDesc%
ServiceType    = 1                  ; SERVICE_KERNEL_DRIVER
StartType      = 0                  ; SERVICE_BOOT_START
ErrorControl   = 1                  ; SERVICE_ERROR_NORMAL
ServiceBinary  = %12%\OsnDSS.sys

[OsnDSS_EventLog_Install]
AddReg = OsnDSSEventLogInstall

[OsnDSSEventLogInstall]
HKR,,EventMessageFile,0x00020000,"%SystemRoot%\System32\IoLogMsg.dll;%SystemRoot%\System32\drivers\OsnDSS.sys"
HKR,,TypesSupported,0x00010001,7

; Source file information
;

[SourceDisksNames]
1 = %DiskId1%,,,""

[SourceDisksFiles]
OsnDSS.sys = 1,,

[Strings]

;
; Non-Localizable Strings
;

REG_SZ         = 0x00000000
REG_MULTI_SZ   = 0x00010000
REG_EXPAND_SZ  = 0x00020000
REG_BINARY     = 0x00000001
REG_DWORD      = 0x00010001
SERVICEROOT    = "System\CurrentControlSet\Services"

;
; Localizable Strings
;

ClassName = "DiskDrive"
StorTrust				= "Enterprise Information Management Inc."
DiskId1					= "EIM Installation Disk #1"
StorTrust.DeviceDesc	= "EIM Disk Shadow Copy Driver"
OsnDSS.SvcDesc			= "EIM Disk Shadow Copy Driver"
OsnDSSRegistery        = "system\currentcontrolset\control\class\{4D36E967-E325-11CE-BFC1-08002BE10318}"

右键安装,最主要是需要有两个域[DefaultInstall]和[DefaultInstall.Services],只有有这两个域,右键安装的时候才能找到入口;先来讲讲[DefaultInstall]这个域,

CopyFiles =OsnDSS.Files ;这个是将Osndss.sys Copy windows\system32\driver 下

OptionDesc =%StorTrust.DeviceDesc% ;这个是描述下一个驱动是什么,随便填
AddReg = OsnDSS.AddReg ;由于我写的是Disk过滤驱动,所以需要加到注册表UpperFilters键值下面

OsnDSSRegistery = "system\currentcontrolset\control\class\{4D36E967-E325-11CE-BFC1-08002BE10318}" ;其中后面一串数字是表示Disk设备在windows系统里可以识别的ClassGuid,我们的Osndss是 append 在UpperFilters已有的PartMgr后面;这样系统启动的时候会去哪里找到Osndss也需要启动,然后回去找Services里对应的OsnDSS注册表,找到其相关信息;

再来讲讲[DefaultInstall.Services]:

AddService = OsnDSS,, OsnDSS_Service_Inst, OsnDSS_EventLog_Install ;这个在Services添加注册表名为OsnDSS,子域OsnDSS_Service_Inst(这个域内的内容在INF文件详细里有讲,这里就不累赘了),OsnDSS_EventLog_Install 这个是注册一下事件日志;

这样总结一下加载完成了什么:1.Copy sys文件;2在Upperfilters 加入Osndss;3写入注册表services名为Osndss;4写入注册表EventLog-》System里Osndss的注册表;这样我们就可以将驱动sys文件和Inf文件放在同一个目录(最好不好放桌面,随便找个卷都行,桌面好像中文系统的话不识别)然后右键Inf安装就可以了,安装完之后会有提示重启生效的;

还有一种安装方法就是:

RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 132 path-to-inf\infname.inf

在Commnd 里输入上面的指令最后的path-to-inf\infname.inf替换为你Inf的路径;

接下来讲下卸载,我们安装什么,理论上我们就应该要卸载什么的。当然微软本身可能就有不少软件,安装之后,在卸载的时候有不少东西不清理掉的,所以系统用久了就会觉得不怎么好使了。

卸载域:

[DefaultUninstall]
DelFiles =OsnDSS.Files ;将Drivers 下面的Osndss.sy删掉;
DelReg =OsnDSS.DelRegistry ;删除Append在Upperfilters里的OsnDSS

[DefaultUninstall.Services]
DelService =OsnDSS,0x00000200,, ;卸载Service下面的OsnDSS 整个子键,后面的两个参数[Eventlog type][eventlogname], EventLog type的话有三种,System,Security,Application,如果是System的话可以默认不写的,如果Eventlog name 和Servcie下的名字是一样的话也可以不写的,这里我试过多次,Service下面的子键Osndds确实能卸载掉的,但是Eventlog里的不管是默认还是写明了System,Osndss都无法卸载掉,至今没找到为什么;

卸载的时候就不能用右键了,因为压根就没这个选项,只能用Command:

RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultUninstall 132 path-to-uninstall-dir\infname.inf

这样就卸掉了,虽然还遗留Eventlog卸不掉的遗憾

时间: 2024-11-14 12:53:59

INF 右键安装驱动以及卸载的相关文章

电脑安装驱动报错解决办法,个人实践证明可以解决

1. 安装串口类型的驱动时,有可能会出现驱动安装不了的情况,报错:找不到相应文件或者找到文件,安装出错,如下图: 2.遇到此类问题,解决方法如下: 1>检查C盘路径下是否有“mdmcpq.inf”   "usbser.sys"文件,如果没有下载相应系统的文件, mdmcpq.inf 文件放在 c:\window\inf 下 usbser.sys 放在 c:\window\system32\dirver\下 重新安装驱动,如果不成功,请参考下面的方法. 2> 把usbser.

MTP设备无法安装驱动的解决办法

1,进入设备管理器右击带黄色问号的MTP,选择“属性”,“详细信息”“设备范例 ID”(用Ctrl+C复制). 2,找到c:\windows\inf\wpdmtp.inf打开(或者通过运行打开),找到[Generic.NTx86]%GenericMTP.DeviceDesc%=MTP, USB\MS_COMP_MTP[Generic.NTamd64]%GenericMTP.DeviceDesc%=MTP, USB\MS_COMP_MTP 3,将2中的USB\MS_COMP_MTP更改为1中复制的

Arduino在64位WIN7下无法安装驱动的解决办法

1.获取权限 打开C:\Windows\System32\DriverStore\FileRepository,对着FileRepository文件夹,右键 >>属性 >>安全,选中Everyone ,点击编辑,选中完全控制选项框,设置如下: 2.复制文件 将mdmcpq.inf_amd64_neutral_fbc4a14a6a13d0c8文件拷贝至该目录下,下载地址. 3.安装驱动 计算机 >>管理 >>设备管理器 ,选中未知设备,更新驱动

第八章:Linux代码重用、Linux驱动强行卸载

(一)Linux代码的重用 重用=静态重用(将要重用的代码放到其他的文件的头文件中声明)+动态重用(使用另外一个Linux驱动中的资源,例如函数.变量.宏等) 1.编译是由多个文件组成的Linux驱动,即静态重用 对于复杂的Linux驱动,需要使用多个源代码文件存放不同的功能代码,这样做有利于代码分类和管理,那么就不得不编译多个源代码文件,最终生成.ko文件或编译进Linux内核 下面,就举例介绍将3个.c文件分别编译为3个.o文件,并将这3个.o文件链接(link)成一个.ko文件——静态重用

VC安装驱动详细解释

最近用C++写了一款类似android手机助手的产品,其中的一个模块功能是检测与监测android设备的设备ID,根据设备ID检索驱动并进行安装.因此搜索了好多关于驱动安装的资料,现整理如下: 驱动分为WDM式和NT式两种驱动,我所理解的两者区别: 1. WDM由.inf文件加载,NT通过服务手动加载 2. WDM支持即插即用,NT不支持即插即用 3. WDM通过注册表指定挂载那个驱动,NT可通过寻找不同的设备对象指定挂载 进一步可了解: http://blog.sina.com.cn/s/bl

datagrip离线安装驱动jar

问题描述: datagrip离线安装驱动,在线的安装驱动一般默认安装在当前用户下.DataGrip xxxx 问题解决: 在线在线下载驱动jar,复制jar到内网离线环境 01.外网已经存在的jar提取到jar  02.新建datasourc,右键duplicate(复制) 注意:新建的mysql drivers页面的JDBC drivers一栏,对“User provided driver”取消打钩,并点击加号,弹出一个jdbc-drivers的存放路径 取消使用互联网提供的url,使用本地下

Percona Server 5.6 RPM 快速安装&快速完全卸载

1.先快速安装,然后进行学习,参数文件慢慢再来学习. 安装包下载到/tmp路径下 # tar -xvf Percona-Server-5.6.34-79.1-r1c589f9-el6-x86_64-bundle.tar # ls *.rpm # rpm -ivh Percona-Server-shared-56-5.6.34-rel79.1.el6.x86_64.rpm # rpm -ivh Percona-Server-client-56-5.6.34-rel79.1.el6.x86_64.r

Window 8.1 安装驱动出现 “文件的哈希值不在指定的目录文件中。。。”

如图: 解决方法: 按下键盘组合键 Win + C,然后点击"设置"-->"更改电脑设置" 进入电脑设置之后,点击"更新和恢复"-->"恢复"-->"立即重启" 等一会,会出现几个选项,点击"疑难解答"--> "高级"-->"重启" 重启之后,会出现一个列表,选择"禁用强制驱动程序签名"(对应那个数

2016031901 - ubuntu15.1安装驱动

个人使用u盘安装的ubuntu15.1,安装后找不到无线,主要是驱动没有安装的问题. 解决方案如下: 01.wife无法找到 02.pool文件夹内都是驱动,我们需要的网络驱动也在内 03.网络驱动包 此时你点击安装,缺少必要的依赖包.如果无法通过其他方式联网的话. 04.必要的安装包 笨方法安装驱动依赖包,那就打开main包,将见到的软件包安装一遍.最后安装网络包,就会出现周围的wife可以连接