INF? 右鍵安裝驅(qū)動以及卸載
之前寫過一篇文章是關(guān)于 INF 文件具體解釋的。大家能夠參看 INF 文件具體解釋 ,這次寫的是關(guān)于 INF 右鍵安裝,這樣比較方便。
卸載的話也是一句話。能夠大大降低安裝時間;
先將INF文件內(nèi)容貼上來:
右鍵安裝,最主要是須要有兩個域 [DefaultInstall]和 [DefaultInstall.Services],僅僅有有這兩個域,右鍵安裝的時候才干找到入口;先來講講 [DefaultInstall]這個域。; 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}"
CopyFiles =OsnDSS.Files ;這個是將Osndss.sys Copy windows\system32\driver 下
OptionDesc =%StorTrust.DeviceDesc% ;這個是描寫敘述下一個驅(qū)動是什么,隨便填
AddReg = OsnDSS.AddReg ;由于我寫的是Disk過濾驅(qū)動。所以須要加到注冊表UpperFilters鍵值以下
OsnDSSRegistery = "system\currentcontrolset\control\class\{4D36E967-E325-11CE-BFC1-08002BE10318}" ;當(dāng)中后面一串?dāng)?shù)字是表示Disk設(shè)備在windows系統(tǒng)里能夠識別的ClassGuid。我們的Osndss是 append 在UpperFilters已有的PartMgr后面。這樣系統(tǒng)啟動的時候會去哪里找到Osndss也須要啟動。然后回去找Services里相應(yīng)的OsnDSS注冊表,找到其相關(guān)信息。
再來講講[DefaultInstall.Services]:
AddService = OsnDSS,, OsnDSS_Service_Inst, OsnDSS_EventLog_Install ;這個在Services加入注冊表名為OsnDSS。子域 OsnDSS_Service_Inst(這個域內(nèi)的內(nèi)容在INF文件具體里有講。這里就不累贅了), OsnDSS_EventLog_Install 這個是注冊一下事件日志。
這樣總結(jié)一下載入完畢了什么:1.Copy sys文件;2在Upperfilters 加入Osndss。3寫入注冊表services名為Osndss;4寫入注冊表EventLog-》System里Osndss的注冊表;這樣我們就能夠?qū)Ⅱ?qū)動sys文件和Inf文件放在同一個文件夾(最好不好放桌面。隨便找個卷都行,桌面好像中文系統(tǒng)的話不識別)然后右鍵Inf安裝就能夠了,安裝完之后會有提示重新啟動生效的。
另一種安裝方法就是:
在Commnd 里輸入上面的指令最后的path-to-inf\infname.inf替換為你Inf的路徑;
RUNDLL32 . EXE SETUPAPI . DLL , InstallHinfSection DefaultInstall 132 path - to - inf\infname . inf
接下來講下卸載,我們安裝什么。理論上我們就應(yīng)該要卸載什么的。
當(dāng)然微軟本身可能就有不少軟件,安裝之后,在卸載的時候有不少東西不清理掉的,所以系統(tǒng)用久了就會認(rèn)為不怎么好使了。
卸載域:
[DefaultUninstall]
DelFiles =OsnDSS.Files ;將Drivers 以下的Osndss.sy刪掉;
DelReg =OsnDSS.DelRegistry ;刪除Append在Upperfilters里的OsnDSS
[DefaultUninstall.Services]
DelService =OsnDSS,0x00000200,, ;卸載Service以下的OsnDSS 整個子鍵,后面的兩個參數(shù)[Eventlog type][eventlogname], EventLog type的話有三種,
System
,
Security
,
Application
。假設(shè)是
System
的話能夠默認(rèn)不寫的,假設(shè)
Eventlog?name?
和
Servcie
下的名字是一樣的話也能夠不寫的。這里我試過多次。
Service
以下的子鍵
Osndds
確實能卸載掉的,可是
Eventlog
里的無論是默認(rèn)還是寫明了
System
,
Osndss
都無法卸載掉。至今沒找到為什么;
卸載的時候就不能用右鍵了,由于壓根就沒這個選項。僅僅能用 Command :
這才放下心,雖然有一個遺留Eventlog卸不掉后悔
RUNDLL32 . EXE SETUPAPI . DLL , InstallHinfSection DefaultUninstall 132 path - to - uninstall - dir\infname . inf
版權(quán)聲明:本文博客原創(chuàng)文章。博客,未經(jīng)同意,不得轉(zhuǎn)載。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
