Handle Invalid error when trying to run a KMDF driver

Ilias Tsigkogiannis wrote:

As you said… they are APPLICATIONS! We are talking about DRIVERS!
There is a difference between these 2. Let’s say that somebody buys a
new device (keyboard/mouse/usb stick… it doesn’t matter), plugs it
in and gets a message saying “sorry, however Windows doesn’t support
your keyboard. Please go to www.microsoft.com/foo/bar, download our
KMDF installer and try again”.

How happy do you think that this person would be? Especially now that
he has to use his computer with a non-working keyboard/mouse?

(a) I know exactly how you feel in this case - I experienced it.
For driver testing (also performance), I had to set up Win98SE on a
system with USB keyboard and mouse.
“Please click ‘continue’ to set up ”, otherwise installation
would not continue. The message came before the USB drivers were
active. (Yes, I resigned and got PS/2 devices at that point.)

(b) Because of this I would never remove the OPTION to include WDF with
a driver that needs it. And with core system components of course it
DOES make sense to include it!

But probably I don’t need another WDF installer for my mobile phone
firmware update driver, the web cam, the joypad driver, the bluetooth
adapter, the scanner, the video grabber, the smart card reader, the
printer and for all the other USB gizmos and gadgets that are on the
market.
For these I would advocate (1) a way of getting a message during WDF
driver install, if the necessary WDF version is not yet installed, and
(2) have a clean and lean install package that just installs the framework.

Then I would go and grab the one with the highest number on it (=latest
version, either from one of the product CDs or from the 'net), install
it, then do all of the WDF driver installations, and be done.

IIRC with less install time, fewer reboots (and fewer backup copies of
older versions of the WDF in the bowels of the system) than if every one
of these drivers brings its own framework version with it. Correct?

Never mind - if I see this correctly, it should not be difficult to make
something like a “pure” WDF framework install package.

Given the fact that a lot of install packages contain anyway slack stuff
(drivers for different OSes, “useful” applications, etc.) most probably
the additional megabytes for the framework installers does probably
really not matter much. I’ll just have to get used to it.

Ilias Tsigkogiannis wrote:

I’d like to give some more info on the issue of using an msi to update WDF.
> […]

Thanks for the background!

What if the user doesn’t have a network access? Or if he just installed Windows and his network card driver depends on a newer KMDF version? So, the driver that YOU created won’t be working! And then he’ll be blaming Microsoft…

Sorry, that’s a bad user experience. Better safe than sorry.

We want our users to have good user experiences. Just plug-in the device, point to the inf and have it working. We don’t want to tell a user who doesn’t have an internet connection (for any reason) that “he needs to download this package from the internet, otherwise his device won’t work”.

We’ve given lots of thought on all these issues and we have some options, however keep in mind that all sorts of people use WDF drivers and we don’t want to ruin the user experience for any of them.

Ilias

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Hagen Patzke
Sent: Wednesday, February 27, 2008 4:34 PM
To: Windows System Software Devs Interest List
Subject: Re:[ntdev] Handle Invalid error when trying to run a KMDF driver

Ilias Tsigkogiannis wrote:

As you said… they are APPLICATIONS! We are talking about DRIVERS!
There is a difference between these 2. Let’s say that somebody buys a
new device (keyboard/mouse/usb stick… it doesn’t matter), plugs it
in and gets a message saying “sorry, however Windows doesn’t support
your keyboard. Please go to www.microsoft.com/foo/bar, download our
KMDF installer and try again”.

How happy do you think that this person would be? Especially now that
he has to use his computer with a non-working keyboard/mouse?

(a) I know exactly how you feel in this case - I experienced it.
For driver testing (also performance), I had to set up Win98SE on a
system with USB keyboard and mouse.
“Please click ‘continue’ to set up ”, otherwise installation
would not continue. The message came before the USB drivers were
active. (Yes, I resigned and got PS/2 devices at that point.)

(b) Because of this I would never remove the OPTION to include WDF with
a driver that needs it. And with core system components of course it
DOES make sense to include it!

But probably I don’t need another WDF installer for my mobile phone
firmware update driver, the web cam, the joypad driver, the bluetooth
adapter, the scanner, the video grabber, the smart card reader, the
printer and for all the other USB gizmos and gadgets that are on the
market.
For these I would advocate (1) a way of getting a message during WDF
driver install, if the necessary WDF version is not yet installed, and
(2) have a clean and lean install package that just installs the framework.

Then I would go and grab the one with the highest number on it (=latest
version, either from one of the product CDs or from the 'net), install
it, then do all of the WDF driver installations, and be done.

IIRC with less install time, fewer reboots (and fewer backup copies of
older versions of the WDF in the bowels of the system) than if every one
of these drivers brings its own framework version with it. Correct?

Never mind - if I see this correctly, it should not be difficult to make
something like a “pure” WDF framework install package.

Given the fact that a lot of install packages contain anyway slack stuff
(drivers for different OSes, “useful” applications, etc.) most probably
the additional megabytes for the framework installers does probably
really not matter much. I’ll just have to get used to it.


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

>test platform is vista. It is not a pnp driver; it is a virtual device

that looks like an audio device to the user but actually uses winsock
kernel to send the audio elsewhere.

Maybe it is a good idea to implement it as a user-mode DLL driver which is
accessible via waveXxx functions?


Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com

>Vista32. The reason is simple: driver signing. I’m not sure if it is

possible to have one .cat file for more OSes but even if it is, we don’t

Vista64 signature embedded to the .SYS file is fine on 2008 x64.


Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com

We did work in 1.7 to help with txt mode setup. You still have to extract the runtime binaries out of the coinstaller since the coinstaller is not a part of F5 installation. BTW, txtmode setup support was explicitly not a goal with KMDF when we started b/c we were not targeting storage (and all of its various requirements like guaranteed fwd progress) and we considered it too niche to impact the overall design…but we were definitely surprised when folks started using KMDF as a bus driver to enumerate a storage part and not necessarily to be a part of the storage stack itself.

d

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Don Burn
Sent: Wednesday, February 27, 2008 12:55 PM
To: Windows System Software Devs Interest List
Subject: Re:[ntdev] Re:Re:Handle Invalid error when trying to run a KMDF driver

Peter,

Yes by txtsetup. This soured two firms that were going to convert
almost everything to WDF, to saying that until there is a solution don’t use
the acronyms WDF, KMDF or UMDF in our presence.


Don Burn (MVP, Windows DDK)
Windows 2k/XP/2k3 Filesystem and Driver Consulting
Website: http://www.windrvr.com
Blog: http://msmvps.com/blogs/WinDrvr
Remove StopSpam to reply

“Peter Wieland” wrote in message
news:xxxxx@ntdev…
You mean drivers that need to be loaded in txtsetup I assume?

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Don Burn
Sent: Wednesday, February 27, 2008 11:49 AM
To: Windows System Software Devs Interest List
Subject: Re:[ntdev] Re:Handle Invalid error when trying to run a KMDF driver

One problem I don’t see how you will address with the co-installer approach
is the need for drivers to run at Windows installation time. I now have had
two different customers who jumped on the KMDF bandwagon and then discovered
after rewriting their drivers to KMDF that they could not use them as part
of an install. Since in both cases the drivers were needed for Windows to
work, both firms now have corporate edicts “NO WDF!!!”

This is frustrating, since I have just finished some new drivers for them
that otherwise would be perfect for KMDF, but need to be part of the
install.


Don Burn (MVP, Windows DDK)
Windows 2k/XP/2k3 Filesystem and Driver Consulting
Website: http://www.windrvr.com
Blog: http://msmvps.com/blogs/WinDrvr
Remove StopSpam to reply

“Peter Wieland” wrote in message
news:xxxxx@ntdev…
It’s a tempting idea … the problem is that it then ties all this new
device installation technology into specific versions of Windows. Sure your
driver package could state that it needs update Y but the code to understand
that is probably in update X which has to be applied first.

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.

-p


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