File ID management

Hi,

I want to allocate file IDs at the minifilter-level, and use them as I
please. Of course, my minifilter must be consistent with the file
system; each of them should manage its distinct set of file IDs.

I haven’t found any allocation/deallocation functions. Moreover, I’ve
read that file IDs in NTFS are implemented w.r.t. a file’s position in
the MFT, so I think what I want to do is impossible, no?

Also, how “bad” is it not to support file IDs at all? Will application
stop working without file IDs?

Thanks


Thanos Makatos
Junior Engineer
Storage Systems Research Group - Computer Science Department
Barcelona Supercomputing Center - Centro Nacional de Supercomputación
http://www.bsc.es/StorageSystems

WARNING / LEGAL TEXT: This message is intended only for the use of the
individual or entity to which it is addressed and may contain
information which is privileged, confidential, proprietary, or exempt
from disclosure under applicable law. If you are not the intended
recipient or the person responsible for delivering the message to the
intended recipient, you are strictly prohibited from disclosing,
distributing, copying, or in any way using this message. If you have
received this communication in error, please notify the sender and
destroy and delete any copies you may have received.

http://www.bsc.es/disclaimer.htm

You cannot allocate file IDs yourself - that’s the file system’s job. You
can allocate files, and track them by file ID if you choose, though.

I’m not sure what you mean by “not support file IDs”. In general, they’re
transparent to you and applications rarely need to think about them.

Maybe you could tell us what you’re really trying to do that makes you think
you need this and we could offer suggestions.

Ken

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Thanos Makatos
Sent: Monday, October 18, 2010 7:37 AM
To: Windows File Systems Devs Interest List
Subject: [ntfsd] File ID management

Hi,

I want to allocate file IDs at the minifilter-level, and use them as I
please. Of course, my minifilter must be consistent with the file system;
each of them should manage its distinct set of file IDs.

I haven’t found any allocation/deallocation functions. Moreover, I’ve read
that file IDs in NTFS are implemented w.r.t. a file’s position in the MFT,
so I think what I want to do is impossible, no?

Also, how “bad” is it not to support file IDs at all? Will application stop
working without file IDs?

Thanks


Thanos Makatos
Junior Engineer
Storage Systems Research Group - Computer Science Department Barcelona
Supercomputing Center - Centro Nacional de Supercomputaci?n
http://www.bsc.es/StorageSystems

WARNING / LEGAL TEXT: This message is intended only for the use of the
individual or entity to which it is addressed and may contain information
which is privileged, confidential, proprietary, or exempt from disclosure
under applicable law. If you are not the intended recipient or the person
responsible for delivering the message to the intended recipient, you are
strictly prohibited from disclosing, distributing, copying, or in any way
using this message. If you have received this communication in error, please
notify the sender and destroy and delete any copies you may have received.

http://www.bsc.es/disclaimer.htm


NTFSD is sponsored by OSR

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

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer

In addition to Ken’s observations, I would note that FAT does not support “open by ID” although it does return a value when it is queried.

There are very few applications that use file IDs at all, and even fewer that use them to open a file by ID.

Like Ken, I find your suggestion about supporting them in a filter confusing. I’ve built many file systems that support them, but for a filter it doesn’t make logical sense. Still, if you wanted to build your own mapping layer, I suppose that you could do so. This would only be problematic when operating without your filter “in the way” but that might not be an issue for your specific design.

Tony
OSR