Folks,
I had seen some similar behaviour with my FSD. I had to support ObjectID query to support ADS correctly, I am not sure how they are related. Since my FSD is ‘pseudo’ FSD which stacks on an existing NTFS parition, all I had to do in the ObjectID query was to behave as a ‘passthrough’ and return the ObjectID from the underlying NTFS.
Once ObjectID queries were supported, my ADS support seem to make progress (ofcourse with additional code for ADS related processing).
Also, another interesting thing to be noted is that in my FSD, I do NOT return ‘FILE_SUPPORTS_OBJECT_IDS’ in the ‘FileSystemAttributes’ field during the query volume Info, but I still do get a Query ObjectID call and as long as I do return the correct ObjectID (as mentioned above), the application, perticularly Explorer seem to then look for ADS.
I have always wondered what is the relationship between ObjectID and ADS, may be applications such as Explorer make the ObjectID query 1st and then make certains assumptoins if the call is not supported by the FSD.
How applications such as ‘Explorer’ use the ‘FileSystemAttributes’ field returned in a Volume query has been a mistry to me.
Regards,
Manish
Greg Pearce wrote:
Thanks for the reply, Tony…
I do see that a copy of a ADS file on NTFS causes an
IRP_MJ_QUERY_INFORMATION on the input file, for FileObjectIdInformation.
Must I support ObjectId information/Open by ObjectId to handle streams?
My driver doesn’t currently support ObjectId stuff (I set ‘SupportsObjects’
to FALSE on IRP_MJ_QUERY_VOLUME_INFORMATION). I may have missed seeing a
call to this function in filemon at some previous time (like at system
init?). BTW: Does the OS “remember” this setting for the duration of the
system uptime after one call?
Regards back to you,
Greg
“Tony Mason” wrote in message news:xxxxx@ntfsd…
Greg,
There ARE applications that use streams, and as I recall UDF has
provisions for this as well, as does CDFS. They are used for non-data
oriented attributes of the file - Explorer likes to store thumbnails in
a stream for instance. But obviously they are not required for correct
support.
I know this is not tied to NTFS, we’ve done it before. There is
something missing in the description you’ve provided, but I don’t know
what it is. What I’d suggest is watch the same exchange on NTFS and on
your file system and then compare the data values being returned - one
of them is the missing link.
Regards,
Tony
Tony Mason
Consulting Partner
OSR Open Systems Resources, Inc.
http://www.osr.com
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Greg Pearce
Sent: Monday, July 12, 2004 9:03 AM
To: ntfsd redirect
Subject: Re:[ntfsd] streams - why should I do this?
I like Max’s answer - which is why I posed the question the way I did in
the first place. I probably shouldn’t be doing this, at all. But,
somebody in our user community wants to do it, so I still have to
research it.
To expound on Tony’s answer, I have seen (in filemon) that Explorer does
a IRP_MJ_CREATE (open directory) on the root of my device, then does
IRP_MJ_DIRECTORY_CONTROL for FileBothDirectoryInformation, then it does
a cleanup and a close. Then it does another IRP_MJ_CREATE for the root,
then a IRP_MJ_QUERY_VOLUME_INFORMATION for FileFsAttributeInformation,
then the “Confirm Stream Loss” dialog box shows up, and before I reply
to this prompt, filemon shows another cleanup and a close.
My FSD “or’s in” the FILE_NAMED_STREAMS flag in the
FileFsAttributeInformation struct and returns. All of these IRPs were
completed with STATUS_SUCCESS.
There’s something else I’m missing, but darned if I can find it.
Thanks again
Greg
“Maxim S. Shatskih” wrote in message
news:xxxxx@ntfsd…
> > MSS> Only NTFS has the ADS in its on-disk format.
> > MSS> Neither FAT12/16/32 nor any UNIX FS have them.
> >
> > There are way too many file systems and some of them do have
streams.
>
> Mainstream ones (ext2, BSD FFS) have no, and POSIX syscall API has
> also no support for them.
>
> The feature is nearly useless. It is used in Windows nearly only for
Macintosh
> fileserver. Even the things like "Save/Web page (complete) in IE does
> not
use
> this feature, they use a directory named “bla-bla-bla.files” instead.
>
> Document Summary feature also does not use them, it uses OLE compound
document.
> Version Info feature is also such - it uses the resources section in
> the
PE
> binary.
>
> The “any file is a stupid stream of bytes” is a good paradigm. Streams
support
> is better belong to user-mode libraries like ole32, and not to the FSD
> in
the
> kernel.
>
> Maxim Shatskih, Windows DDK MVP
> StorageCraft Corporation
> xxxxx@storagecraft.com
> http://www.storagecraft.com
>
>
—
Questions? First check the IFS FAQ at
https://www.osronline.com/article.cfm?id=17
You are currently subscribed to ntfsd as: xxxxx@osr.com To unsubscribe
send a blank email to xxxxx@lists.osr.com
—
Questions? First check the IFS FAQ at https://www.osronline.com/article.cfm?id=17
You are currently subscribed to ntfsd as: xxxxx@yahoo.com
To unsubscribe send a blank email to xxxxx@lists.osr.com
---------------------------------
Do you Yahoo!?
New and Improved Yahoo! Mail - 100MB free storage!