這兩天詢問usb驅(qū)動安裝程序制作的人很多,我有幸做成過一個這樣的安裝程序。雖然這兩天測試也有人回復說還有問題,但我還是對我的安裝程序充滿信心。
我也曾在本論壇回答過一些朋友的帖子,但回復成功的似乎還沒有。這也很正常,畢竟影響安裝的因素太多。
我現(xiàn)在簡單介紹一下usb驅(qū)動安裝程序的制作過程,希望能給有這方面需求的朋友一點啟示,也希望這方面的大拿能給與批評指正。
1,準備inf和sys
新建一個目錄,比如d:\\DrvInstDir,把你寫好的inf和sys都放在此目錄下。
2,驗證你的inf
把系統(tǒng)清理干凈,就如同你從來沒在這臺機器上裝過你的驅(qū)動程序一樣。然后,手工安裝你的設備,驗證用你的inf是否能正確安裝你的sys。注意,這兒有特殊要求,就是在安裝過程中,指定了d:\\DrvInstDir為搜尋目錄之后,系統(tǒng)就能自動找到sys文件并執(zhí)行安裝,而不會再要求你指定sys文件的位置。如果你的inf滿足此要求,則第二步通過;否則請修改你的inf文件,直到它能滿足要求為止。
3,編寫安裝程序
簡單做的話,只需調(diào)用SetupCopyOEMInf即可。比如:
SetupCopyOEMInf("d:\\\\DrvInstDir\\\\xxxx.inf",NULL,SPOST_PATH,0,NULL,0,NULL,NULL);
4,再次將系統(tǒng)清理干凈
5,運行安裝程序
SetupCopyOEMInf會在%windir%\\inf目錄下生成一個oem*.inf。找找看有沒有跟你的inf內(nèi)容完全一致的oem*.inf,如果有,則成功,可以繼續(xù)往下走。否則,請退回到前面,察看哪兒出了問題。
6,插上usb設備,驗證安裝程序是否生效
注意,在2k下,插上usb設備后,如果設備硬件id和inf中的硬件id完全匹配(注意,如果是其他匹配形式,比如設備硬件id匹配inf中的兼容id或者設備兼容id匹配inf中的硬件id,那么我不保證上述方法有效),那么系統(tǒng)會自動將sys文件從d:\\DrvInstDir下復制到%windir%\\System32\\Drivers目錄下,并對其進行安裝。如果在xp下,且inf和sys沒有經(jīng)過數(shù)字簽名,那么系統(tǒng)會彈出“發(fā)現(xiàn)新硬件”窗口,你只需連續(xù)點擊窗口上的“下一步”按鈕即可完成驅(qū)動程序的安裝。至于在xp下,如何避免inf和sys未經(jīng)數(shù)字簽名時系統(tǒng)彈出“發(fā)現(xiàn)新硬件”窗口,并讓系統(tǒng)自動完成設備驅(qū)動程序的安裝,請參考我在本論壇發(fā)的“協(xié)作安裝程序應用一例”一帖。