W2K vs XP and FS Types and Volume Names

Hi,

I have an IFS (not a filter) that was developed for and has been shipping
on W2K for a while. I am now porting it to XP (a little late) and found an
interesting problem. The Volume Name and the File System type show up
incorrectly in the explorer. They always say “Local Disk” and “RAW”.
Interestingly, in a cmd windows, a DIR command returns the correct volume
name.

Does anyone have any suggestions on what XP is doing here? I have used
FileMon to look at the file system IRPs and everything looks normal. Has
anyone run into this?

Thanks in advance.

Don

Usually such kind of problems appear when you don’t handle properly the case
when application sends you output buffer that is too small to hold all
output data.
I would suggest you to check that when output buffer is too small you fill
as much information as possible into the buffer, set appropriate value in
Irp->Status.Information and return STATUS_BUFFER_OVERFLOW.

Alexei.

wrote in message news:xxxxx@ntfsd…
>
> Hi,
>
> I have an IFS (not a filter) that was developed for and has been shipping
> on W2K for a while. I am now porting it to XP (a little late) and found an
> interesting problem. The Volume Name and the File System type show up
> incorrectly in the explorer. They always say “Local Disk” and “RAW”.
> Interestingly, in a cmd windows, a DIR command returns the correct volume
> name.
>
> Does anyone have any suggestions on what XP is doing here? I have used
> FileMon to look at the file system IRPs and everything looks normal. Has
> anyone run into this?
>
> Thanks in advance.
>
> Don
>
>

Don,

We experience a similar problem when our file system is loaded after boot.
However, when we set the registry entry to load the module at boot,
Explorer reports the correct volume name. Apparently, Explorer caches the
volume name or driver type. Since we only load the module post-boot for
development, the problem is largely avoided. Of course, this doesn’t help
immediately after writing a file system to a RAW partition. If you find a
solution, please post to this list; I will do the same.

Cheers,

Steve S.

I have an IFS (not a filter) that was developed for and has been shipping
on W2K for a while. I am now porting it to XP (a little late) and found an
interesting problem. The Volume Name and the File System type show up
incorrectly in the explorer. They always say “Local Disk” and “RAW”.
Interestingly, in a cmd windows, a DIR command returns the correct volume
name.

Steve,

I tried setting the startup to boot time (I never do that since I am
always working on the driver) and sure enough it worked. Thanks a lot for
your pointer here, I could have spent weeks trying to solve this one. If I
ever come up with a real solution, I will let you know. I suspect
Microsoft will have to fix this one though.

Don

Don,

We experience a similar problem when our file system is loaded after boot.
However, when we set the registry entry to load the module at boot,
Explorer reports the correct volume name. Apparently, Explorer caches the
volume name or driver type. Since we only load the module post-boot for
development, the problem is largely avoided. Of course, this doesn’t help
immediately after writing a file system to a RAW partition. If you find a
solution, please post to this list; I will do the same.

Cheers,

Steve S.

> I have an IFS (not a filter) that was developed for and has been shipping
> on W2K for a while. I am now porting it to XP (a little late) and found an
> interesting problem. The Volume Name and the File System type show up
> incorrectly in the explorer. They always say “Local Disk” and “RAW”.
> Interestingly, in a cmd windows, a DIR command returns the correct volume
> name.

In XP new API was introduced - FsRtlNotifyVolumeEvent. It allows
applications to receive notifications when a volume was mounted. It is
possible that Windows Explorer relies on this API and refreshes cached
values when it receives notifications.

Alexei.

wrote in message news:xxxxx@ntfsd…
>
> Steve,
>
> I tried setting the startup to boot time (I never do that since I am
> always working on the driver) and sure enough it worked. Thanks a lot for
> your pointer here, I could have spent weeks trying to solve this one. If I
> ever come up with a real solution, I will let you know. I suspect
> Microsoft will have to fix this one though.
>
> Don
>
>
> > Don,
> >
> > We experience a similar problem when our file system is loaded after
boot.
> > However, when we set the registry entry to load the module at boot,
> > Explorer reports the correct volume name. Apparently, Explorer caches
the
> > volume name or driver type. Since we only load the module post-boot for
> > development, the problem is largely avoided. Of course, this doesn’t
help
> > immediately after writing a file system to a RAW partition. If you find
a
> > solution, please post to this list; I will do the same.
> >
> > Cheers,
> >
> > Steve S.
> >
> > > I have an IFS (not a filter) that was developed for and has been
shipping
> > > on W2K for a while. I am now porting it to XP (a little late) and
found an
> > > interesting problem. The Volume Name and the File System type show up
> > > incorrectly in the explorer. They always say “Local Disk” and “RAW”.
> > > Interestingly, in a cmd windows, a DIR command returns the correct
volume
> > > name.
>
>

How do you process IRP_MJ_QUERY_VOLUME_INFORMATION for the volumes opened
for Direct Access to Storage Device (DASD), not root directory?

Just run FileMon,
kill explorer process from task manager and after run it again.

You will see:


IRP_MJ_CREATE X:
IRP_MJ_QUERY_VOLUME_INFORMATION X: (FileFsVolumeInformation)

DIR command from cmd.exe makes the same requests, but for Root directory
of the volume.

Hope it helps,
Kristian