The IrpTracker question I just posted is related to this issue. I have
a minifilter that restores offline files that have reparse points on
them. Unfortunately, once they’ve been restored, they can’t be deleted.
I’m working under the assumption that I’ve left something improperly
handled in the driver, and that’s causing the issue.
The file gets restored on a read or write to it, doing a create merely
caches some information that I need in the pre-operation callbacks for
read/write, a close drops that information from the cache. To test the
restore, I’m running copy [offlinefile] [somewhere], and it fails with
“Invalid Function”. Hence my suspicion that I’m handling something
incorrectly in the driver. I’m trying to use IrpTracker to hunt down
any Irps I might not be completing properly, but am having the
aforementioned problems. Are there other things I should be looking for
besides loose Irps hanging out? Running openfiles with local enabled
doesn’t turn up the undeleteable file. I’m guessing that means the
problems is somewhere pretty deep into things.
At this point, should I generate a crash dump and start trolling through
it with kd or windbg? If so, where can I find good documentation on
them, specifically relating to getting lists of Irps and File objects?
Is there any other route I should go down first to try to sort this
issue out?
Thanks,
~Eric