2010-11-18 54 views
1

我有一個使用installshield創建的MSI。 當我在Windows XP上安裝該MSI時,設備被檢測到。 .sys文件在C:\ Windows \ system32 \ drivers目錄下創建,C:\ Windows \ system32 \ driverstore也有相關的設備文件夾。 但是,相同的MSI無法在Window7上安裝驅動程序。換句話說,在C:\ Windows \ system32 \ drivers目錄下都沒有檢測到設備,也沒有創建.sys文件,而C:\ Windows \ system32 \ driverstore也沒有相關的設備文件夾。Win7中的驅動程序安裝問題

我想知道MSI有什麼問題。 MSI在Windows7上安裝內核驅動程序所需的設置是什麼

在此先感謝您提供任何有用的信息。

+0

你買得起DriverGenius軟件嗎?不管爲什麼你的MSI文件安裝不好,該程序將搜索並找到適合你係統的驅動程序。我在Win 7上使用它,它工作。 – 2010-11-18 17:05:02

+0

我用我開發的驅動程序創建了一個MSI。所以,我想知道安裝它需要什麼設置。 – Lakshmi 2010-11-18 17:07:52

+0

驅動程序包是否已簽名?你使用legacyMode嗎? – Christopher 2010-11-18 17:29:20

回答

1

如果安裝程序是專爲32位平臺。它無法在32位進程下安裝64位驅動程序。這可能是你問題的原因。

要解決此問題,您可以創建自定義操作,並根據Windows平臺,自定義操作將調用DPInst.exe爲32位或64位安裝驅動程序,

本文Driver Installation for 32-bit and 64 bit Platforms給出了樣本代碼如何使用32位安裝程序在64位平臺上安裝64位驅動程序包

0

我認爲InstallShield(現代版)爲DIFx(驅動程序安裝框架)提供了集成,它是WDK的一部分並以合併模塊和DLL的形式出現。無論哪種方式,即使InstallShield不包含直接支持,也可以使用標準工具來集成合並模塊。

然而,「簽署」是而不是就夠了。自從Vista以特殊方式簽署驅動程序(包括根證書(在執行signtool sign時通過/ac)作爲簽名的一部分(在引導過程的早期沒有可用的證書存儲區)時,您需要擁有該驅動程序。另外,在安裝期間,Setup API實際上將驗證屬於該驅動程序的CAT文件已由MS(通過WHQL)交叉簽名。你有一個CAT文件和一個適當的INF文件,CAT文件已被交叉簽名,對嗎?

如果你有signtool(Windows SDK中或WDK)使用

signtool verify /kp /v <filename> 

驗證簽名(/v是冗長的,你可以使用/q如果你只在返回代碼感興趣)。

如果這些驗證失敗,那已經是一個根本原因。

對CAT和SYS文件執行此檢查。