How long does the cache manager (lazy writer) retry I/O previously failed?

I’ve created a volume filter driver which return a failure for specified some of write I/Os.
and I tested it and cache manager’s lazy writer keeps retrying it.
According to my test results, it has tried until he succeeded up to even more 10,000 times.

first of my question is that “how long does the cache manager (lazy writer) retry I/O previously failed?”

and
In case of a write failure due to a real problem(for example bad sectors) on the physical disk, does the cache manager retry the I/O forever?

I am under the impression that the Cache Manager will keep retrying WRITE’s until it gets success or one of a number of specific failure codes. I use STATUS_VOLUME_DISMOUNTED in my own FSD to stop CcWriteBehind calls under some circumstances.

1 Like