I’d like to give some more info on the issue of using an msi to update WDF.
As you know, there are 2 ways to install a device and its driver:
- Hardware-first: Plug-in the device, point the “add-new hardware wizard” to the inf and install the driver
- Software-first: Install the driver, then plug-in the device
In KMDF and UMDF we want to provide support for both ways and we don’t want to change the model that windows drivers have been using so far. This means that we need an inf to install the driver. If we provided just an msi, which you’d have to install before pluging-in your device, this means that we’re breaking the hardware-first installation. We don’t want to do that, that’s why we have the coinstaller
So, the inf calls the coinstaller, which includes a windows update package. This package updates the WDF binaries that are on disk. From the user’s perspective, it doesn’t have any difference, if the coinstaller is internally using an msi, a windows update package or any other technology. So, just by replacing the update technology and using an msi, wouldn’t give any benefit. On the contrary, we’d have to start development and testing from scratch and find solutions to problems like how it’s possible to overcome Secure File Protection in Windows Vista in such a way that we don’t break support for Windows 2000. At the same time, we also need to keep our binary small. That’s why we’re not changing the current architecture (yet).
Having said that, I’d like to say that we’ve spent a considerable amount of time testing the KMDF 1.7 coinstaller and its behavior in key areas is very different than the KMDF 1.5 one. KB937381 was released after the testing of coinstallers was finished, so it was impossible to predict something like that. Even in this case, though, we were informed about the problem last week and within a few days we were able to find what’s causing it and provide 2 workarounds. At the same time we’re working on providing a permanent fix. Indeed, we understand the pain of driver installation, that’s why many WDF developers and testers are monitoring ntdev, as well as other relevant mailing lists and newsgroups, so that we’re always on speed with what problems people are facing.
Ilias
From: xxxxx@lists.osr.com [xxxxx@lists.osr.com] On Behalf Of Peter Wieland [xxxxx@windows.microsoft.com]
Sent: Wednesday, February 27, 2008 12:11 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] Handle Invalid error when trying to run a KMDF driver
And would have resulted in a large body of MS kernel-mode code which couldn’t be detected, serviced or blocked if a major security vulnerability was found.
And while you might be kind enough to re-release your drivers should such an issue be found I’m quite certain there are many many other drivers that would never get re-released and would just continue to propagate that flaw across the entire ecosystem.
Side-by-side support has a similar issue. From an IT administrator point of view it’s better to have a single patch which will fix a problem and can be rolled back than to have a new form of DLL hell where each driver has to be managed individually.
-p
-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Tim Roberts
Sent: Wednesday, February 27, 2008 11:56 AM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] Handle Invalid error when trying to run a KMDF driver
Peter Wieland wrote:
…
The only way to resolve the chicken-and-egg problem on downlevel versions of Windows is to use the coinstaller. I’m hoping in the future we can make the coinstaller a little more general purpose since the problems facing KMDF are the same ones that face UMDF, WinUSB, and any other device technology we release out-of-band, but that’s my hope not a plan or a promise.
We’ve made the assumption that no one wants to have separate installation packages - one for pre Win7 and another for Win7 to deal with a radical change in the installation model. So we instead have to use a coinstaller.
Making it a statically linked library would have solved many of these
issues. If my driver is tested with KMDF 1.5, then it can use KMDF
forever, even if other drivers are using 1.7 and 1.9.
May I ask why the decision was made to call the helper wdf01000.sys,
instead of wdf01001.sys, wdf01005.sys, and wdf01007.sys? That, also,
would have solved this problem, at the expense of 0.025c worth of disk
space.
–
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
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