Hi,
I am using Wise for Windows Installer for creating an msi package that will
install 32-bit non-device minifilter drivers plus the end user app. The
driver package consists of three .SYS files, one INF and one CAT file. All
of the drivers will be signed with the Authenticode (not WHQL). I am using
the latest version of DIFxApp.msm. I have configured my test system (XP) to
run in a debug mode, so I can avoid the problems related to signature
validation. So far I have been unable to successfully install using the DIFx
tools. I have examined the INF using chkinf.bat and fixed all of the errors.
This INF works fine when I use right-click menu option "Install". The
Setupapi.log shows only warnings related to drivers' signatures, but
everything else gets installed. When I use the same INF with the msi and
DIFx, the install fails with the msg in the log: "Could not get services
associated with driver package". there is no problem with starting the
services when I use right-click menu option "Install".
1. Can I use one INF file for all the three signed drivers? "The
Requirements for Driver Packages That Are Used with the DIFx Tools" MS doc
reads: "Each signed driver package INF must have its own catalog file, which
contains the signature for the driver package. The DIFx tools do not support
catalog files that contain signatures for more one driver package". Does it
mean that I need to have three separate INFs and corresponding catalog
files? That would be strange since a single INF works with the setupapi.
2. DDK docs state explicitly that CatalogFile entry in the Version section
of the INF file is "for signed antivirus minifilters, this entry contains
the name of a WHQL-supplied catalog file. All other minifilters should leave
this entry blank. For more information, see the description of the
CatalogFile entry in INF Version Section". When I use DIFxApp.msm, the
install will fail if there is no CatalogFile entry and there is nothing in
the documentation that would suggest this entry is optional. So, I have
assumed that when using DIFx tools I must use catalog files even when
installing minifilter drivers. Is that correct?
3. The DriverPackageType in the [Version] section is listed as
"FileSystemMinifilter". The latest version of the DIFx tools lists only two
types: ClassFilter and PlugAndPlay. Should I change that entry to
ClassFilter or is it backwards compatible. I recall seeing a post somewhere
stating that using FileSystemMinifilter is OK.
4. I came across a post stating: "The issue is if you talk with the DIFx
guys they will tell you that non-device drivers are not supported with DIFx.
If it works be happy and continue to use it but if you have issues they
won't do anything about it right now. Hopefully we will get this resolved
(and supported) soon".
Does this statement apply to Vista only or DIFx tools in general? What are
my options in a situation where I need to use Windows Installer technology
to install drivers with the application. My understanding is that there is
no other other built-in support for installing drivers using Windows
Installer than DIFx. If DIFx does not support non-device drivers it leaves
me with no alternative. What am I supposed to do to install in a supported
way non-device drivers using Windows Installer technology?
I would appreciate your advice.
Thanks,
Jack