Verifier systematic low resource simulation not working on windows 10 1607

Having used verifier since its inception I am surprised to see that systematic low resource simulation is not working on windows 10 (either entirely or in the same simple way it worked on previous OSs)

!verifier 0xf

(0x00010000) Port/miniport interface checking
(0x00040000) Systematic low resources simulation
(0x00080000) DDI compliance checking (additional)

Pool Allocations Attempted 0x2a
Pool Allocations Succeeded 0x2a

None of the allocations were failed.

So, its either 100% broken or there is some new and undocumented way to get it to function.

Can anyone shed light on this?

After more replugs:


Pool Allocations Attempted 0xc5d
Pool Allocations Succeeded 0xc5d
Pool Allocations Succeeded SpecialPool 0x1f4

Not once did driverentry, adddevice, startdevice, or any functionality fail due to a refused resource allocation.

Some data throughput:

Pool Allocations Attempted 0x3052
Pool Allocations Succeeded 0x3052
Pool Allocations Succeeded SpecialPool 0x818


Fault injection trace log

Driver Verifier didn’t inject any faults.

You don’t say.

Do you imply unload-load operations when you say “After more replugs” ? If so, then that scenario may not have triggered faults anyway for routines that the verifier has already seen

https://msdn.microsoft.com/en-us/windows/hardware/drivers/devtest/systematic-low-resource-simulation

If this is the first time it has ever seen that stack, it will fail the call according to the semantics of that call. Otherwise, if it has seen that call before, it will pass it through untouched. Systematic low resources simulation contains logic to deal with the fact that a driver can be loaded and unloaded multiple times. It will recognize that a call stack is the same even if the driver is reloaded into a different memory location.

Also, try !verifier 0x800 which will give you the details you are looking for. On my Windows Server 2016 setup, I am able to get the details under this and I do not see it under the 0xf flags

From !verifier documentation :
Bit 11 (0x800)
(Windows 8.1 and later) Display entries from the fault injection log that is created when you select the Systematic low resource simulation option.

Further, from command prompt, run “verifier /faultssystematic querystatistics”

@Anand,

No, it hasn’t failed one allocation.

Here is !verifier 0x800:

“No injections to report”

and the command line reports “0” for everything.

It just isnt working.


disableboottime : Disables fault injections across computer reboots (this is the default setting).

I am not entirely sure whether one can achieve any failures on the stacks that are seen by the verifier during load time with :
a) “disableboottime” set to true [default] and
b) driver loaded at boot time and
c) persistent settings

I have a boot load driver in development as of now on which I enabled persistent settings without changing “disableboottime” and did not see any failures. On setting “enableboottime”, I did see failure. I did not make the driver go through its run time allocation paths, so not sure if those would have had failures observed when “disableboottime” was true.

This is a PnP driver, so should be handled OK.

xxxxx@hotmail.com wrote:

Having used verifier since its inception I am surprised to see that systematic low resource simulation is not working on windows 10 (either entirely or in the same simple way it worked on previous OSs)

!verifier 0xf

(0x00010000) Port/miniport interface checking
(0x00040000) Systematic low resources simulation
(0x00080000) DDI compliance checking (additional)

Pool Allocations Attempted 0x2a
Pool Allocations Succeeded 0x2a

None of the allocations were failed.

So, its either 100% broken or there is some new and undocumented way to get it to function.

As I understand it, the pool allocation failure algorithm doesn’t impose
failures right away, because that tended to cause drivers to fail during
initialization, so it didn’t actually do random testing. I don’t know
what the delay is.


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

For the pther low resource simulation, yes, it. Takes a while to kick in and you have to give it a likelyhood value. For systematic though i would expect it to work as in the past.

But i have been running this for hours, plugging it in and put, doing data transfer, and nothing is bing failed.

Basically, it is not workin as. It used to, and i can only assume it is broken.

Come on guys, there must be someone in MSFT who knows how to get this to work!

Just tested on 8.1 and it is the same, there must be some trick to get this to work, I can’t believe it is just non functional.