Hello all.
We are developing a FSD. We have been following Rajeev Nagar’s book so
far and all went well until we have stumbled upon the Read IRP. Then we
went puzzled.
The question is: How do we feed the Cache Manager with the data for an
opened file?
As OSR IFS FAQ states, “If the virtual cache buffer contents are not all
resident in memory, then the copy process will trigger a page fault,
which generates a second re-entrant I/O operation via the paging mechanism.”
Then, the question is, how we implement the handler for the second
re-entrant operation? Is that the same Read IRP handler that’ll be
triggered in such case or it’s some another handler that needs to be
implemented? If it’s the same Read IRP handler, then how we distinguish
this “second re-entrant call” from the first one and actually deliver
the data contained in a file to the cache manager?
I hope, I didn’t mess the description.
Any clues will be highly appreciated.
Andrey.