RE: Questions about Windows installer, DIFX and non-devic e drivers

Thanks Mike, but this does not answer my question on how to integrate
non-device driver installation with the Windows Installer using available
technologies. The purpose of DIFxApp.msm is to enable such integration.
Based on Neil’s post it sounds that this may not be the case for non-device
drivers, so I would like to confirm that and find out what are the
alternatives. I will probably post my message to other MS newsgroups to get
more exposure.

Regards,

Jack


From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of William Michael
Jones
Sent: Monday, November 13, 2006 4:02 PM
To: Windows System Software Devs Interest List
Subject: Re:[ntdev] Questions about Windows installer, DIFX and non-device
drivers

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” mailto:xxxxx > wrote in message news:xxxxx@ntdev
news:xxxxx
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


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer</news:xxxxx></mailto:xxxxx>

> The issue is if you talk with the DIFx guys they will tell

you that non-device drivers are not supported with DIFx

I am surprised by this statement. The documentation goes to great lengths discussing using DIFx with class filters which it appears is what you need it for. Note installing using DIFx is more stringent than right clicking your INF file to install. Namely, you MUST set DriverPackageType in your INF file (which has the side effect of generating chkinf warnings, ho hum). And since you aren’t using signing, you MUST configure DIFx into legacy mode.

eof