M
Micah Brodsky
Hey, folks.
I'm working on a research project on transparent device driver isolation at
the University of Washington, and I have a question about IRP handling
that's probably pretty simple. I've been wondering, under any circumstances
is it permissible to send an IRP off again with IoCallDriver after having
reclaimed it in a completion routine, when you yourself did not create the
IRP but rather received it through a dispatch routine from someone else? In
other words, can you do ping pong without ponging all the way back to the
top?
I'm pretty much indifferent to the answer itself, but I need to know for my
IRP state machine if it should be a permitted operation or whether a driver
screwing around enough to make it work is asking for a system crash... It's
an interesting fine line to dance, trying to figure out what sorts of dubous
behavior can be smoothed over and let pass, and what sorts of behavior are
too dangerous to allow. I haven't really figured much out in that realm yet.

Thanks a lot.
--Micah Brodsky
I'm working on a research project on transparent device driver isolation at
the University of Washington, and I have a question about IRP handling
that's probably pretty simple. I've been wondering, under any circumstances
is it permissible to send an IRP off again with IoCallDriver after having
reclaimed it in a completion routine, when you yourself did not create the
IRP but rather received it through a dispatch routine from someone else? In
other words, can you do ping pong without ponging all the way back to the
top?
I'm pretty much indifferent to the answer itself, but I need to know for my
IRP state machine if it should be a permitted operation or whether a driver
screwing around enough to make it work is asking for a system crash... It's
an interesting fine line to dance, trying to figure out what sorts of dubous
behavior can be smoothed over and let pass, and what sorts of behavior are
too dangerous to allow. I haven't really figured much out in that realm yet.

Thanks a lot.
--Micah Brodsky