我公司生產的測量設備通過USB連接到PC並用於使用Windows內置USB HID驅動程序。我正在使用不同的驅動程序來控制設備,而且我正在爲許多Windows版本簽署這些驅動程序。原因是我們希望我們的客戶能夠安裝我們的測量軟件(可以預先安裝這些新驅動程序),插入我們的測量設備,並讓Windows信任並使用我們的新驅動程序,以支持內置USB HID驅動程序。無論使用什麼USB端口,或者用戶連接描述符中具有不同序列號的設備,每次連接設備時,它還具有使用此新驅動程序的額外好處。使用Vista和以後的方法簽署的Windows驅動程序在XP中安裝得很好,但它不應該?
我已經通讀並執行了Microsoft編寫的KMCS_Walkthrough中概述的步驟,通過爲inf文件創建Windows 7 x64的目錄文件並使用自簽名對目錄文件簽名來執行此驅動程序的測試簽名證書。重啓進入測試模式時,Windows 7 x64機器上的東西似乎可以順利運行。讓我感到意外的是,我能夠創建一個XP_x86目錄文件,使用我的測試證書對其進行簽名,將我的測試證書導入到受信任的根存儲中,並在Windows XP機器上獲得我想要的驅動程序行爲。默認的驅動程序簽名策略被設置爲默認值(警告 - 每次提示我選擇操作)。
我很驚訝,因爲我一直在閱讀的有關簽署XP驅動程序公開發布的所有MSDN文檔似乎都對驅動程序進行了嚴格的WHQL認證,以便讓驅動程序完全可信,而不是從第三方獲取代碼簽名證書並使用它來簽署驅動程序。這是不是真的?我的自簽名驅動程序如何在Windows XP中排在機箱內的USB HID驅動程序?
嗨大衛。有趣的是,您之前回復是因爲我剛剛在發佈這篇文章之前,已經閱讀了您的文章(以及1,000頁的MSDN文章和谷歌搜索)。 我的驅動程序也僅限INF。你是如何去安裝你的INF-only驅動程序的? 我問,因爲我以前的嘗試在排序內置USB HID驅動程序不起作用。因此,我可以安裝一個驅動程序實例,但如果我在描述符中切換了USB端口或交換單元號不同的序列號,它就不會出現問題。 我曾使用DPInst和Devcon獲得相同的結果。 – amandion
我們的INF文件有一個DefaultInstall部分,允許用戶通過右鍵單擊並選擇「安裝」來安裝它們。但是現在我們有很好的安裝程序,可以將驅動程序包(INF和相關文件)複製到硬盤驅動器,並從我們編寫的Win32 DLL中調用SetupCopyOEMInf。由於我們的設備並未嘗試成爲標準課程,所以我從不需要排名駕駛員。 –
需要注意的是,在用戶通過「發現新硬件嚮導」後,Windows會記住結果,並且在設備插入時不會使用任何新的驅動程序。因此,您可能需要告訴Windows爲設備更新驅動程序軟件?或者嘗試一下全新安裝的Windows XP,但沒有學會使用錯誤的驅動程序? –