2011年9月29日 星期四

fastinst工作原理

在使用DDK開發USB Driver的安裝程式時,遇上了一個問題
當使用
UpdateDriverForPlugAndPlayDevices這個API來實作時
遇到了一個問題,這個API必須在Device連接上系統時才能將Driver安裝上去!
但是因為產品規格限制,必須開發出Device未連接系統也可以安裝Driver的功能!

請教過一些前輩的開發經驗後,發現Walter Oney在Programming the Microsoft Windows Driver Model書中有一個tool為fastinst,參考該sample code即可了解如何完成這樣的功能。
該Tool的工作原理,其實說穿了非常的簡單~~
在使用UpdateDriverForPlugAndPlayDevices這個API安裝Driver之前
利用
SetupDiCallClassInstaller在系統內register一個虛擬的Device node.
安裝完Driver之後,再ungister該Device node(一樣是用
SetupDiCallClassInstaller這個API)。
利用以上的一點小技巧,即可完成不用插入裝置也可以安裝Driver的功能囉~

沒有留言:

張貼留言