InstanceSetup missing volume info.

I have a case where I get an instance call back for a volume that is
getting mounted in a cluster environment. I actually get it for multiple
drives. For each drive I query the mount manager to get a list of the
guids and driver letter. SOMETIMES the mount manager returns empty list
for one of these volumes that should have this info. The queries are
being performed in another thread.

Any idea why this would sometimes work and other times not?

Is it possible the Filter Manager is calling before the volume is fully
mounted and assigned its guid and drive letters?

Is this a filter manger bug?

Thanks,

Ken

It’s a problem with MountMgr locks. post-Srv03SP1 IFS Kit (WDKs)
actually explain it under FltGetVolumeGuidName.

xxxxx@emc.com wrote:

I have a case where I get an instance call back for a volume that is
getting mounted in a cluster environment. I actually get it for
multiple drives. For each drive I query the mount manager to get a
list of the guids and driver letter. SOMETIMES the mount manager
returns empty list for one of these volumes that should have this
info. The queries are being performed in another thread.

Any idea why this would sometimes work and other times not? Is it
possible the Filter Manager is calling before the volume is fully
mounted and assigned its guid and drive letters? Is this a filter
manger bug?


Kind regards, Dejan
http://www.alfasp.com
File system audit, security and encryption kits.

The docs refer to the dead-lock situation, which I know well (hence I
mentioned I was doing this in a separate thread), in my case there is no
dead-lock only that it returns no-list for the a volume which should
have one.

Is there any way around this problem?

Thanks,
Ken

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Dejan Maksimovic
Sent: Thursday, August 30, 2007 5:39 PM
To: Windows File Systems Devs Interest List
Subject: Re: [ntfsd] InstanceSetup missing volume info.

It’s a problem with MountMgr locks. post-Srv03SP1 IFS Kit (WDKs)
actually explain it under FltGetVolumeGuidName.

xxxxx@emc.com wrote:

I have a case where I get an instance call back for a volume that is
getting mounted in a cluster environment. I actually get it for
multiple drives. For each drive I query the mount manager to get a
list of the guids and driver letter. SOMETIMES the mount manager
returns empty list for one of these volumes that should have this
info. The queries are being performed in another thread.

Any idea why this would sometimes work and other times not? Is it
possible the Filter Manager is calling before the volume is fully
mounted and assigned its guid and drive letters? Is this a filter
manger bug?


Kind regards, Dejan
http://www.alfasp.com
File system audit, security and encryption kits.


NTFSD is sponsored by OSR

For our schedule debugging and file system seminars
(including our new fs mini-filter seminar) visit:
http://www.osr.com/seminars

You are currently subscribed to ntfsd as: xxxxx@legato.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

Well, the API would return STATUS_FLT_VOLUME_NOT_FOUND if called in
InstanceSetup, when a deadlock can occur, but works otherwise - which would
mean you can’t do anything from a separate thread (if you wait on it, it’s no
different, if you don’t wait on it, it probably executes too fast).
What I had to do was, in case the volume name cannot be retrieved during
InstanceSetup, set a flag lpVolCtx->InvalidName, and do a query on first I/O
(so every pre-op would check if lpVolCtx->InvalidName is TRUE and query the
volume name if it is).

Dejan.

xxxxx@emc.com wrote:

The docs refer to the dead-lock situation, which I know well (hence I
mentioned I was doing this in a separate thread), in my case there is no
dead-lock only that it returns no-list for the a volume which should
have one.

Is there any way around this problem?


Kind regards, Dejan
http://www.alfasp.com
File system audit, security and encryption kits.