2010-11-18 46 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文件执行此检查。