Installing driver with Windows Installer?

NTDEV-folk:

What’s the trick to installing a driver using Windows Installer (MSI)?

I can get the driver file itself installed (WFP gets invoked properly), but
I can’t install/start/stop the service. In fact, the description of the
ServiceInstall table explicitly says that service types
SERVICE_KERNEL_DRIVER and SERVICE_FILE_SYSTEM_DRIVER are unsupported.

I’ve tried a CustomAction to “rundll32.exe setupapi,InstallHinfSection
DefaultInstall 132 [MYDIR]MyDriver.inf” (as a deferred action), but that
gives the ever-helpful “Installation failed” box.

Surely there’s a way, but it seems elusive…

Thanks,
Ken

Answering my own question:

MS has a brand new (April 30, 2004) package called Windows Driver Install
Frameworks for Applications (DIFxApp). This is a component of the Microsoft
Windows Driver Install Frameworks (DIFx). With DIFxApp you can use
Microsoft Windows Installer (MSI) to install signed driver packages that are
associated with applications in an MSI installation package

http://www.microsoft.com/whdc/driver/install/DIFxtls.mspx

It looks non-trivial, but presumably works (and is supported). Hope this
helps others interested in the same thing.

Ken

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Ken Cross
Sent: Monday, May 03, 2004 2:12 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] Installing driver with Windows Installer?

NTDEV-folk:

What’s the trick to installing a driver using Windows Installer (MSI)?

I can get the driver file itself installed (WFP gets invoked properly), but
I can’t install/start/stop the service. In fact, the description of the
ServiceInstall table explicitly says that service types
SERVICE_KERNEL_DRIVER and SERVICE_FILE_SYSTEM_DRIVER are unsupported.

I’ve tried a CustomAction to “rundll32.exe setupapi,InstallHinfSection
DefaultInstall 132 [MYDIR]MyDriver.inf” (as a deferred action), but that
gives the ever-helpful “Installation failed” box.

Surely there’s a way, but it seems elusive…

Thanks,
Ken


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

You are currently subscribed to ntdev as: xxxxx@comcast.net
To unsubscribe send a blank email to xxxxx@lists.osr.com

Hi, Ken.

Take a look at the Driver Install Frameworks Tools, which were just
released. I think one of the tools, DIFxApp, will do what you want. Your
driver has to be signed, but I believe an Authenticode signature will do if
you don’t have a WHQL signature.

http://www.microsoft.com/whdc/driver/install/difxtools.mspx
http://www.microsoft.com/whdc/driver/install/DIFxtools_reqs.mspx
http://www.microsoft.com/whdc/driver/install/DIFxApp.mspx

-Dan

----- Original Message ----- >

Subject: Installing driver with Windows Installer?
From: Ken Cross
Date: Mon, 3 May 2004 14:12:18 -0400

NTDEV-folk:

What’s the trick to installing a driver using Windows Installer (MSI)?

I can get the driver file itself installed (WFP gets invoked properly),
but
I can’t install/start/stop the service. In fact, the description of the
ServiceInstall table explicitly says that service types
SERVICE_KERNEL_DRIVER and SERVICE_FILE_SYSTEM_DRIVER are unsupported.

I’ve tried a CustomAction to “rundll32.exe setupapi,InstallHinfSection
DefaultInstall 132 [MYDIR]MyDriver.inf” (as a deferred action), but that
gives the ever-helpful “Installation failed” box.
>
> Surely there’s a way, but it seems elusive…
>
> Thanks,
> Ken