Hi all,
We're hitting up against a brick wall using DIFxApp 2.1 in an msi installer
and I was hoping someone on here may have some answers.
We have a file system filter driver and an associated usermode service. I
put together an inf file to install the driver and the service where the
[Version] section contains:
DriverPackageType=FileSystemFilter
On Windows XPSP2 with DIFxApp legacy mode enabled (flags of 0n14 in the
MsiDriverPackages table) I get the following problems:
The first problem is that DIFxApp (and DPInst for that matter) comes back
with an extremely cryptic message saying "Could not get services associated
with driver package". What's that supposed to mean? If I process the inf
outside of DIFxApp, it works fine. Additionally, if I remove the usermode
service install from the inf file and just have it install the filter
driver, it works fine with DIFxApp. I discovered this by trial and error
after I noticed the inf would work just fine outside the context of DIFxApp.
So, I reluctantly broke the usermode service out into a separate inf. This
got me past the cryptic error above, but it feels wrong to have to break up
the inf.
The second problem is that we have specific uninstall requirements. That
is, we want to remove the usermode service entry from the SCM database but
not stop it, for example. It's my understanding that DelService inf
directive without the SPSVCINST_STOPSERVICE flag will do just that.
However, DIFxApp attempts to stop the service anyway, and then kicks into
rollback mode when that fails. In fact, even if I completely remove the
[DefaultUninstall.Services] section from the inf file, DIFxApp still tries
to stop the service and delete it.
What exactly is DIFxApp doing under the covers here and why? A little more
detail than the highlevel docs would be great? It seems to me that we will
have to use SetupAPI directly in order to get around these problems, and
writing those msi custom actions sounds like the exact nightmare DIFxApp was
supposed to cure.
Any ideas?
Thanks,
-Trey
|