Questions about Windows installer, DIFX and non-device drivers

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. There was a post on the OSR forum in which Neal Christiansen said: “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 if someone could explain what is the right course of
action in my case and how to make it work.

Thanks,

Jack

I have written custom installation programs.

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?

You can write your own installation exe. Look at the devcon sample in the Windows DDK under the setup subdir. You can install drivers with this application.

-William Michael Jones “Mike”
“Jack Jasinski” wrote in message news:xxxxx@ntdev…
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. There was a post on the OSR forum in which Neal Christiansen said: “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 if someone could explain what is the right course of action in my case and how to make it work.

Thanks,

Jack