0

I've a driver named silabser.sys. I've two different versions of it. My requirement is to install w1.x1.y1.z1 on WinXP and w1.x2.y2.z2 on Win7. My Inf file looks like this:

[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

Is it possible to achieve this through inf file?
As you can see the DriverVer is hardcoded in the [Version] section. How do I tell the OS to load different version of the driver for Win7?

Lakshman Rao
  • 115
  • 1
  • 11

1 Answers1

0

You can do this, you'll need to format your INF to support multiple OS's. Take a look at this entry in MSDN, it points to an example INF in the WDK.

You can place the specific silabser.sys file in a subdirectory next to the INF file (ie .\win7\silabser.sys and .\xp\silabser.sys). Then you'll want to create DriverInstall_XP and DriverInstall_Win7 sections that point to point the correct driver location in your package.

Using a directory structure to support your versions will allow you to recertify the driver using and INF only update through WHQL (which Silabs helps with) since you haven't renamed it, which is an easier and cheaper option. If you were to rename your SYS files you would have to go through a full WHQL certification again.

Preston
  • 2,543
  • 1
  • 17
  • 26