Co-Installer Upgrade

Hello.

Forgive me if this has been hashed out before, I did some searching / reading before resorting to a post but did not come up with an answer to this specific question…

I am upgrading from framework version 1.5 to 1.9, since we are now using the 7600 WDK for our Windows 7 work. The drivers are not based around hardware, so there is no hardware component to this. Our normal procedure for upgrading our drivers is to replace files during the upgrade process, and on reboot, the new driver is loaded.

Since the new drivers are built using the 7600 WDK, they require the 1.9 co-installer now, or I get a beautiful blue screen to look at and never get into driver entry. So what I was hoping for was a API I could call in the WdfCoInstaller01009.dll that would allow for just the framework upgrade to be performed during the MSI installer upgrade process for our product. I’ve had a closer look at the DLL’s interface and see there are a number of undocumented APIs here, but none of those look too helpful to this end.

Further investigation revealed that I could extract a CAB file from the DLL, then extract a EXE from the CAB, which gave me a full installer to install the framework with. This works beautifully! I can install the framework upgrade silently with this executable, finish our product upgrade, reboot, and everything is happy.

So my question is, can I legally do this? The DLL is ‘redistributable’, but am I ‘modifying’ the DLL by extracting the installer and running it this way? And finally, if so, is there a better way to get JUST a framework upgrade that is not going to cause license problems?

xxxxx@letomoxy.net wrote:

So my question is, can I legally do this? The DLL is ‘redistributable’, but am I ‘modifying’ the DLL by extracting the installer and running it this way? And finally, if so, is there a better way to get JUST a framework upgrade that is not going to cause license problems?

It’s not necessary. There are documented entry points within the
co-installer that you can call, which will do the version check and
whatever upgrade is necessary. Search for WdfPreDeviceInstall and
WdfPostDeviceInstall.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

One additional observation, in addition to what Tim already said about the installation entry points for the coinstaller:

>>>>>>>>>>>>>>>>>
Further investigation revealed that I could extract a CAB file from the DLL, then extract a EXE from the CAB, which gave me a full installer to install the framework with. This works beautifully!
<<<<<<<<<<<<<<<<<<

Umm, not on Vista or WS08- that EXE only works on WS03 and earlier, as it cannot replace system files.

Which is not much help if you are installing from an MSI or equivalent
installation app. that is calling DpInst. You have to go check error
return codes for 0x4xxxxxxx and then do something irritating to your
customers by rebooting your system.

Mark Roddy

On Wed, Oct 6, 2010 at 3:50 PM, Tim Roberts wrote:
> ?xxxxx@letomoxy.net wrote:
>> So my question is, can I legally do this? The DLL is ‘redistributable’, but am I ‘modifying’ the DLL by extracting the installer and running it this way? And finally, if so, is there a better way to get JUST a framework upgrade that is not going to cause license problems?
>
> It’s not necessary. ?There are documented entry points within the
> co-installer that you can call, which will do the version check and
> whatever ?upgrade is necessary. ?Search for WdfPreDeviceInstall and
> WdfPostDeviceInstall.
>
> –
> Tim Roberts, xxxxx@probo.com
> Providenza & Boekelheide, Inc.
>
>
> —
> NTDEV is sponsored by OSR
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer
>