Hi Daniel:
Okay, I understand wrt the create (supersede/overwrite) that you want to
defer to; thanks.
In general, though, why post when the resource can’t be acquired exclusively
right now? A Create request, for example: why not just call
ExAcquireResourceExclusive() with Wait == TRUE; what purpose is there for
calling it without blocking, then posting it for a system thread to acquire
it with blocking?
What sort of deadlock possibility would this solve?
Thanks,
Curt
Look again. It completes the operation STATUS_SUCCESS; the
STATUS_PENDING is just coming back on the rare case we collide on the
resource with an async handle, or the case where we have a
supersede/overwrite above and don’t want to really do the
operation (and
blow away the Fcb before the refcount goes back up). Since we delay
closes so frequently anyway, this costs little.