Question about whql

Hi Experts

My question is about purpose of whql.

Suppose I have a filter driver which based on some inputs from user mode performs filtering.

We can think of user mode as full software suite.

So is the purpose of whql to test full functionality of driver with fully functional user mode.

i.e while doing whql is the fully functional product needs to be installed?

Or can I just test the driver like for loading/unloading etc.

The reason for question is that like many commercial softwares our software can run under various configurations and scenarios.

So does it mean that each whql test be subjected to this vast configuration and functionality tests.

Documentation is not very much clear on that.

Any comments/discussions etc is welcome.

Thanks again for help

xxxxx@hotmail.com wrote:

My question is about purpose of whql.

The purpose of WHQL, essentially, is to give Microsoft some level of
assurance that the drivers being installed on their customer’s systems
are not total garbage.  When a third-party driver causes Windows to
crash, consumers blame Microsoft.  They don’t understand the fineries of
third parties and outside drivers.  All they know is that Windows
crashed.  Microsoft got tired of being blamed for that.

In the late 1990s, Windows started sending a summary of every blue
screen to Redmond for statistical analysis.  They were getting tens of
thousands of these every day, and it turned out more than 30% were
caused by graphics drivers.  That’s caused a revolution in graphics
drivers, and things are much better now.  Even if your graphics driver
does crash, Windows can now restart it without impacting the Windows
session.

 

Suppose I have a filter driver which based on some inputs from user mode performs filtering.
We can think of user mode as full software suite.
So is the purpose of whql to test full functionality of driver with fully functional user mode.
i.e while doing whql is the fully functional product needs to be installed?

No.  Remember, YOU don’t decide how to test it.  The HCK/HLK kit will
control the testing.  Based on your driver type, it will choose the set
of tests to run.  For some classes, that means a basic set of tests for
driver integrity (loading, unloading, PnP handling, random IRP
rejection, following the IRP rules) and power management checks (do you
survive sleep/restore, do you survive hibernate/restore).  For some
classes, it means a wide range of functionality tests, but they’re all
canned tests.  You don’t have to be running any of your software.

Now, when you create your WHQL account, you sign a document that says
you have done your own extensive testing of the driver in real-world
operational circumstances, so you do have some liability if your driver
falls flat on its face in actual use, but WHQL can’t test that.

 

Or can I just test the driver like for loading/unloading etc.

YOU don’t decide this.  The HCK/HLK controller decides this.

The reason for question is that like many commercial softwares our software can run under various configurations and scenarios.
So does it mean that each whql test be subjected to this vast configuration and functionality tests.

How would they do that?  Remember, they need test results that can be
scanned and judged automatically.  No, for WHQL, they don’t care about
your software.  All you are testing is the driver.

Documentation is not very much clear on that.

Well, I think it’s there, but you probably have to go through it once to
figure this out.


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

Thanks a lot Tim.
It really helped.