安裝/更新驅動程序要安裝驅動程序,您通常發送命令:從Windows服務
DefaultInstall 128 {INF路徑}
通過直接調用或RUNDLL的InstallHinfSection。
這很奇妙。我可以在任何地方安裝我的驅動程序(包括64位Win 2008 R2,這意味着我已經完成了所有代碼的簽名)。
然而,從Windows服務啓動時上述失敗。我已閱讀關於服務和客戶端安裝的信息,並希望我已經滿足了無提示服務安裝(構建.CAT文件,與驅動程序一起簽名等)的所有要求。
但沒有骰子 - 它只是失敗。在交互式安裝和服務安裝之間比較SetupAPI.log中的錯誤不會顯示任何差異(除了交互式執行復制驅動程序文件和成功的步驟,其他方法則不成功)。
驅動程序本身沒有被使用(我的服務是唯一使用它的)。有沒有辦法讓服務在不需要用戶交互的情況下悄悄更新驅動程序?
我們從服務做同樣的事情,它工作正常,這是直接調用API,而不是通過rundll32。 – Luke
真的嗎?我已經嘗試啓動rundll32並調用相同的結果的API。關於?什麼類型的驅動程序正在安裝? – DougN
實際上,我們正在使用這兩種方法。在32位機器上,我們直接調用API;在64位機器上,我們通過rundll32調用它(我們有一個32位安裝程序)。這是Vista和更高版本上的文件系統微型過濾器。 – Luke