Detect NDIS WHQL Test

Hello,

I wanted to know if there is any way or macro that can be used in miniport drivers to detect if WHQL NDISTest 6.x is being run or not?

Reason: Certain times when WHQL test is being run, I need to change the ring size of the miniport driver to pass the test. However, the defaults work fine on regular setups.

So, I wanted to know if I can use any macro to detect that WHQL test is being run and my driver can change the default to larger ring size when the driver is loaded. Any pointer to any documentation is appreciated.

Thanks

That’s called “cheating”. If you can’t pass the test, then there’s something wrong.

That’s called “cheating”. If you can’t pass the test, then there’s something wrong.

Ummm…I don’t think so. The example I gave is of receive ring size which will have Minimum value, Maximum value and a default value.

For e.g. Min = 128, Max = 2048, Default = 512
The default value chosen can be for many reasons based on the driver and real world setups (memory usage, microbenchmark performance, buffers configuration, etc). Now, for WHQL test, for certain tests 512 is enough but for some tests I need to set more than 512 as ring size to pass the test because the packets get dropped for the default ring size (512).

This does not mean I will choose higher defaults for the driver because WHQL is saying so, because real world setups have different requirements. We cannot use max value as the ring size default to avoid packet drops in WHQL test. So, I thought to use a different default (within the ring size range) for WHQL tests. Here, I am not bypassing the test, but using different valid value within the range (what we usually see the users set based on their requirements).

Thanks

There is indeed a fine line between “cheating” and having a “compliance” mode in which your product can usefully run that also allows it to pass the WHQL tests. The key, in my opinion, is that the “compliance” mode has to result in a useful, if not optimum or even maximally functional, product. But it needs to be a configuration that a customer could realistically choose to run your product, if they wanted to run it “just exactly like it was to pass WHQL” and still do useful work.

Having said that, you don’t need to “detect” anything. Just set the specific parameter values you want to use, and load them from the registry. Or setup the Paramus manually. You can configure as much as you want before running the tests.

Peter

Having said that, you don’t need to “detect” anything. Just set the specific parameter values you want to use, and load them from the registry. Or setup the Paramus manually. You can configure as much as you want before running the tests.

Thank you Peter. That is exactly what I do currently. I manually change the value of ring size (within valid limits what a user could configure as and when required) and then run the tests. However, I was looking for a way to avoid this manual intervention of changing configurations before running the tests and simply load the tests and run them all. I run these tests on variety of different Windows Oses and need to change the config on each of those machines.

hmm…seems we do not have a way to identify if NDIS tests have been loaded.

And WHQL mode test settings are done routinely in many organizations. The
WHQL tests are fine for some purposes, but are frequently
inadequate/inappropriate for special purpose devices/device stacks.

Mark Roddy

WHQL tests… are frequently inadequate/inappropriate

Full stop right there.

Discretion truly is the better part of valor.

Peter