2011-05-09 19 views
3

我正在努力擴展現有的USB設備驅動程序,並一直在努力學習.INF文件的工作原理。我相信我現在擁有它,司機安裝並工作。它也顯示在「添加/刪除程序」列表中。我的.INF的卸載部分

我發現,當我從添加/刪除中卸載驅動程序時,它似乎沒什麼用處。這是在.inf因爲我繼承了它:

[myUninstall] 
DelReg = myDelReg 

[MyDelReg] 
HKLM, "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\myName" 

我能找到的任何其他引用,甚至沒有在那裏「MYNAME」被安裝在註冊表中卸載。

我已經改變了.INF有這樣的:

[DefaultUninstall] 
myUninstall 

[myUninstall] 
DelFiles = ... a list of files ... 
DelDirs = UNINST.Dirs 
DelReg = UNINST.Regs 
Cleanup = 1 

[UNINST.Dirs] 
%16422%\%InstallDir% 

[UNINST.Regs] 
myDev.AddReg 
myDev.CommonRegs 


[myDev.AddReg]  ; same definition used for installing 
HKR,,Drivers,Subclasses,,"wave,midi,mixer,aux" 
... 

[myDev,CommonRegs] ; same definition used for installing 
HKR, Parameters, BufferSize, 0x0010001, 256 
... 

不過,我是否卸載從控制面板的添加/刪除程序或從設備管理器做到這一點,系統不抱怨,似乎沒有發生。我查看了「dpinst/c」和setupapi.log的輸出,但都沒有告訴我很多。 dpinst顯示沒有錯誤,但顯然沒有嘗試執行我的卸載部分。

我在網上找到了很多的verbiage和卸載部分的例子,但是很少有解釋的方法。我在今天的一個論壇中偶然發現了一句話,這意味着PnP設備.INF的不使用卸載。也許這是我的問題?

  1. 我錯在認爲我可以卸載在這個.INF?
  2. 有沒有其他的方法可以告訴發生了什麼?
  3. 是我唯一的辦法來編寫一個單獨的卸載程序?

回答

0

AFIK,INF文件不參與卸載。

如果您想執行正確的清理,則需要編寫一個單獨的卸載程序。

此外請注意,在Vista及更高版本中,Windows還包含一個驅動程序存儲區,它在其中以靜默方式複製驅動程序包(inf和來自inf的文件引用)。如果你想執行完整的清理,驅動程序商店也應該清理。