What does everyone think of Numega (Compuware) DriverWorks?

Hi.

My company is using the DriverWorks package to create several PCI drivers.

Drivers created, drivers work, everything is great!

Then our client gets us to hire a driver expert consultant, who proceeds
to tell them that DriverWorks is very very bugy, poorly supported, and not
fit to write a driver for a toaster!

So, I wanted to get the comments of other people in the driver development
field, the real life if you will (since this guy basically teaches
Mircosoft driver writing for a living), and see what people say about
DriverWorks, and their experiences with the package.

Thanks!

At 10:29 AM 12/9/2003 -0500, you wrote:

Hi.

My company is using the DriverWorks package to create several PCI drivers.

Drivers created, drivers work, everything is great!

Then our client gets us to hire a driver expert consultant, who proceeds
to tell them that DriverWorks is very very bugy, poorly supported, and not
fit to write a driver for a toaster!

So, I wanted to get the comments of other people in the driver development
field, the real life if you will (since this guy basically teaches
Mircosoft driver writing for a living), and see what people say about
DriverWorks, and their experiences with the package.

I think you will find two distinct camps. Those that have been writing
drivers using C and the DDK only for years and typically hate anything
different from that.

OTOH, driverworks provides a framework that generally makes it easier to
write and maintain drivers. I used it to write a PCI driver for our custom
board, and it works great for us.

I think it basically comes down to opinion. If your drivers work, and are
reliable, then you are fine.

Usually when you hire a consultant, it is to work with you on specific
areas or problems. If what you have works for you, yet a consultant or
contractor bad mouths what you have done, then you need to fire that person
and hire one that will work with you. Remember, you are paying him to HELP
you, not flame your decisions.

I am sure this topic will start the old DriverWorks vs. DDK/C vs. C++
driver wars again.

Russ Poffenberger
NPTest, Inc.
xxxxx@NPTest.com

> Hi.

My company is using the DriverWorks package to create several PCI drivers.

Drivers created, drivers work, everything is great!

Then our client gets us to hire a driver expert consultant, who proceeds
to tell them that DriverWorks is very very bugy, poorly supported, and not
fit to write a driver for a toaster!

So, I wanted to get the comments of other people in the driver development
field, the real life if you will (since this guy basically teaches
Mircosoft driver writing for a living), and see what people say about
DriverWorks, and their experiences with the package.

Thanks!

You have answered your own question. The drivers you have created work.
Compuware supports DriverWorks, makes improvements, and fixes reported
bugs. The code has been around a long time and is stable. Drivers
written with DriverWorks are regularly tested against WHQL HCT tests and
pass.

DriverWorks is a C++ framework. There are many who are opposed to using
C++ or a 3rd party framework in a driver. Perhaps your consultant shares
these beliefs.

To say that the product is very very buggy and not fit for a toaster is
simply not true.

It might not be for everybody (those who hate C++ or frameworks in
general), but it does work.

Steve Smith
Compuware
DriverStudio

The next DriverStudio release version 3.1 will feature a new Driver
Wizard. This Driver Wizard will generate DDK style source code in the c
programming language. The wizard is open and extensible and can create
all sorts of DDK/C drivers. For those programmers who do not wish to
program their driver in C++ or use a 3rd party library/framework, the new
Driver Wizard featured in DriverStudio has a lot of value. Its worth a
try.

Steve Smith
Compuware
DriverStudio

Hi.

My company is using the DriverWorks package to create several PCI drivers.

Drivers created, drivers work, everything is great!

Then our client gets us to hire a driver expert consultant, who proceeds
to tell them that DriverWorks is very very bugy, poorly supported, and not
fit to write a driver for a toaster!

So, I wanted to get the comments of other people in the driver development
field, the real life if you will (since this guy basically teaches
Mircosoft driver writing for a living), and see what people say about
DriverWorks, and their experiences with the package.

Thanks!

Hi,

You can expect minimum to zero bugs, from a company making the BEST
debugging tools, ok? Think of John Robbins and say to your consultant to
stick it up his…:slight_smile:

Cheers,
Stoyan

P.S. John does not work there anymore, but I believe he is a legend at
Compuware…

Ilya,

I don’t think it is buggy, in fact there is an outstanding developer by
the name of Bill McKenzie. And if you are trying to write some classes of
drivers, for ME/98 as well as NT/Win2k/XP this is definitely the way to go.

That being said there are problems you need to be aware of with frameworks
(not just DriverWorks):

  1. Sooner or later you will have a bug that will require diving under
    the framework, this has the problem that you now have to be an expert on the
    DDK and on DriverWorks.

  2. There are more consultants and developers who know the DDK, than
    there are developers who are comfortable with DriverWorks. Many consultants
    do not want to use a framework, since they know the DDK and there is a
    learning curve cost that can be hard to justify with so few drivers written
    in frameworks.

  3. I have had customers who have had a problem where the framework
    company says the bug is Microsoft’s and Microsoft blames the framework. In
    the end the company with the driver loses.

  4. You may find you wish to extend your driver in a way that
    DriverWorks doesn’t support and the DDK does. This can be very painful and
    expensive, especially since many of these look like “simple additions to the
    driver”.

  5. Frameworks in general are not always up to the latest Beta’s of
    the OS or service packs. Normally this is not a problem, but like point 4
    above if you have a need for a feature in the beta, you may have to wait or
    pull a nasty workaround.

  6. Framework firms have gone out of business or dropped support of a
    framework. I don’t expect this from Compuware but one must be aware of
    this. This is especially true in light of the fact Microsoft is working on
    a competing framework.

The choice is yours, as a consultant I do not take jobs involving
frameworks since I have had too many bad experiences with case where
management thinks this should take a week or two, and the easiest solution I
see is throw out the driver and rewrite it with the DDK. By the same
token, if you device fits a class that the framework supports this is a
quick and cheap way to get a reasonable working driver.

Don Burn (MVP, Windows DDK)
Windows 2k/XP/2k3 Filesystem and Driver Consulting

----- Original Message -----
From: “Ilya Dreytser”
To: “Windows System Software Devs Interest List”
Sent: Tuesday, December 09, 2003 10:29 AM
Subject: [ntdev] What does everyone think of Numega (Compuware) DriverWorks?

> Hi.
>
> My company is using the DriverWorks package to create several PCI drivers.
>
> Drivers created, drivers work, everything is great!
>
> Then our client gets us to hire a driver expert consultant, who proceeds
> to tell them that DriverWorks is very very bugy, poorly supported, and not
> fit to write a driver for a toaster!
>
> So, I wanted to get the comments of other people in the driver development
> field, the real life if you will (since this guy basically teaches
> Mircosoft driver writing for a living), and see what people say about
> DriverWorks, and their experiences with the package.
>
> Thanks!
>
> —
> Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as: xxxxx@acm.org
> To unsubscribe send a blank email to xxxxx@lists.osr.com

I hesitate to jump in on this but, I must.

Frameworks have been used in virtually all areas of software development to
save time and effort and thus save money. For example MFC and ATL have been
used with great success for Windows user-mode applications. Now .NET is
doing the same for both user-mode and web applications. Obviously
frameworks are seen as valid by the software community as a whole. Driver
frameworks now seem to be supported by Microsoft as they are busy developing
their own.

Looking at some past successes, MFC is a buggy bloated pig. But, compare
writing a sufficiently complex application using the Win32 API alone versus
using MFC, and MFC doesn’t look so bad. Obvioulsy many developers have
opted not to use MFC, but to say that MFC has not saved numerous
corporations numerous man hours and been a net benefit overall, I think is
to mistate the reality of the situation. MFC, while maybe not the best
solution, has allowed the software industry to move forward more quickly
than it otherwise would have. I realize MFC is obsolete today, I am just
using this as an example.

Now, many developers may have issues with using a framework in the kernel.
And on public newsgroups you are much more likely to hear from detractors
than supporters of frameworks. This is simply a matter of economics.
Consultants make money because Windows drivers are sufficiently difficult to
develop. If tools make driver development easier, that isn’t good for
consultants. Further, these boards are heavily populated by consultants as
these boards are an excellent advertising medium. Believe me, I have no
problem with consultants whatsoever, and there are many talented consultants
here. However, these are the facts.

That said, there are also many fly-by-night consultants, and everyone likes
to think they are an expert. Most good consultants, while they likely will
steer you away from frameworks for obvious reasons, will not bash tools that
have been helping many many companies for many years. The sorts of
statements you say your consultant is making smack of a lack of experience
in this industry frankly.

DriverWorks has bugs. I wouldn’t try to deny this for an instant. But
guess what, so will the driver that your consultant writes. However, our
framework code has been run by literally thousands of users on literally
thousands of different hardware platforms. I wonder if your consultant can
claim the same? If you take even a cursory look through the DDK samples,
you will find plenty of bugs there as well. Does that mean the DDK samples
are bad? Maybe some of them. On the whole I wouldn’t say that is true.
Every significantly complex software project is going to have some bugs.
However, I believe most of the long time contributing consultants on these
driver related newsgroups will write you a solid driver no matter the
application. Bug free? Probably not, but as close as you will come. In
the same vein, I believe DriverWorks does and has provided solid quality
driver code for its users. Bug free? No, but I do believe the quality to
be very high. Certainly as high or much higher than someone who has not
been writing Windows driver for several years could hope to produce.

Okay, maybe some of my opinion crept in here so take it for what it is
worth. But, weigh your consultant’s statements as well. He is every bit as
biased as I am. I think either path consultant or framework can produce the
same results given the requirements of the particular application. They are
both tools. Use them properly and you will have good results.

Hope this helps.


Bill McKenzie
Compuware Corporation
Watch your IRPs/IRBs/URBs/SRBs/NDIS pkts with our free WDMSniffer tool:
http://frontline.compuware.com/nashua/patches/utility.htm

“Ilya Dreytser” wrote in message news:xxxxx@ntdev…
>
> Hi.
>
> My company is using the DriverWorks package to create several PCI drivers.
>
> Drivers created, drivers work, everything is great!
>
> Then our client gets us to hire a driver expert consultant, who proceeds
> to tell them that DriverWorks is very very bugy, poorly supported, and not
> fit to write a driver for a toaster!
>
> So, I wanted to get the comments of other people in the driver development
> field, the real life if you will (since this guy basically teaches
> Mircosoft driver writing for a living), and see what people say about
> DriverWorks, and their experiences with the package.
>
> Thanks!
>
>

> Then our client gets us to hire a driver expert consultant, who proceeds

to tell them that DriverWorks is very very bugy, poorly supported, and not
fit to write a driver for a toaster!

Your client’s ‘driver expert’ is either a) an idiot, or b) an idiot that
wants to get a lot of money from the client to write the same drivers from
scratch the hard way, and probably introduce a bunch of bugs he will not
admit to.

There are occasionally bug or two in the DriverWorks stuff, one or two of
which I’ve had to work around over the years. Mostly though they fix bugs
pretty quick when they find out about them, since in fact the product is
both well tested and well supported.

Whether or not C++ is appropriate for driver writing is a separate religious
argument, which shows up here about once a month and lasts a week or so
until everyone is tired of it. But that has nothing to do with any of this
'expert’s assertions, all of which seem to be flat self-serving lies.

Loren

I was really pushing myself over the cliff(edge) to avoid this topic, alas,
I could not… I did not use DriverWork to build a driver from scratch, but
surely took ownership, and debugged, so once I had a cursory knowledge about
its beauty.

But if you want to have a taste for the tools that comes with it, and that
definitely tells the quality of Numega’s product here is a little
experiences I had …

Once there was an HP project for Volvo automative digonistics. The original
product had an installer (install shield), a huge fat Common control Library
( because we had Digital Voltmeter, actually multimeter, rs232
diagnostics – most of it was either in MFC or Win32) an ISA based card
driver that was interacting with a single board (firmware loadable)
remote-pad, the other end of the remote pad goes to electronic module of a
volvo car to have diagnostics being controlled from the desktop…

There were couple bugs that were sort of latent, and finally showed up
around integration time. The build person wrote the installation and
configuration process, I was right between middleware and driver, porting
the stuff from win3.11 to nt3.51/4.0. Build person thought it was a driver
problem, and driver writer thought it was a build configuration problem.
Install shield did not have even script debugger at that time, much less is
to step thru dll it was invoking for configuration ( it was 1996-7) period
so forgot some of the natures of the bugs…

I did not know softice very well at that time, but knew that might be the
only bet I have. FYI, installshield had a long history of carrying a 16bit
setup program, that gets invoked (somehow) by installation script, then that
setup go thru the THUNK engine to 32bit user code, then 32 bit user code
goes to driver in krnl space.

Just using SOFTICE I was able to traverse 3 different universe. One debug
session to step thru all the components to make sure configuration was
correct, and indeed driver had problems as well as some user lvl code having
problem…

At that time, softice used to have a migrain headache for new video cards,
and commad level nmsym was bit uncomfortable, but once those were taken
care, we cleaned up most of the bugs in a week, before that there were
months of nail-pointing (bit sharper than finger pointing).

Hope Ur consultant were there when we were debugging, and I’m sure
appreciation comes from experiences …

-prokash

----- Original Message -----
From: “Ilya Dreytser”
To: “Windows System Software Devs Interest List”
Sent: Tuesday, December 09, 2003 7:29 AM
Subject: [ntdev] What does everyone think of Numega (Compuware) DriverWorks?

> Hi.
>
> My company is using the DriverWorks package to create several PCI drivers.
>
> Drivers created, drivers work, everything is great!
>
> Then our client gets us to hire a driver expert consultant, who proceeds
> to tell them that DriverWorks is very very bugy, poorly supported, and not
> fit to write a driver for a toaster!
>
> So, I wanted to get the comments of other people in the driver development
> field, the real life if you will (since this guy basically teaches
> Mircosoft driver writing for a living), and see what people say about
> DriverWorks, and their experiences with the package.
>
> Thanks!
>
> —
> Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as: xxxxx@garlic.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>