如何根据操作系统安装不同的驱动程序版本?
问题描述:
我有一个名为silabser.sys的驱动程序。我有两个不同的版本。 我的要求是在WinXP上安装w1.x1.y1.z1,在Win7上安装w1.x2.y2.z2。 我的.inf文件看起来是这样的:如何根据操作系统安装不同的驱动程序版本?
[Version]
Signature="$WINDOWS NT$"
Class=Ports
ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
Provider=%Provider%
DriverVer=12/10/2012,6.6.1.0
CatalogFile=slabvcp_ncr.cat}
[Manufacturer]
%MfgName%=SiLabs, NTamd64
.....
[SourceDisksNames.x86]
1=%Disk_Description%,"silabser.sys",,\x86
[SourceDisksNames.amd64]
1=%Disk_Description%,"silabser.sys",,\x64
是否有可能通过inf文件来实现这一目标?
正如你所看到的驱动程序在[Version]部分硬编码。 如何告诉操作系统为Win7加载不同版本的驱动程序?
答
你可以这样做,你需要格式化你的INF以支持多个操作系统。看看this entry in MSDN, it points to an example INF in the WDK。
您可以将特定的silabser.sys文件放在INF文件旁边的子目录中(即.\win7\silabser.sys
和.\xp\silabser.sys
)。然后,您需要创建DriverInstall_XP
和DriverInstall_Win7
部分,指出在包装中指定正确的驱动程序位置。
使用目录结构来支持你的版本将允许你重新认证驱动程序使用和INF只通过WHQL更新(Silabs帮助),因为你没有重新命名它,这是一个更容易和更便宜的选项。如果您要重命名SYS文件,则必须再次通过完整的WHQL认证。