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