IoCreateFileSpecifyDeviceObjectHint and Open By File Id

When I call IoCreateFileSpecifyDeviceObjectHint to open a file by id in my
create routine, another open by id comes back down through my filter. If I
leave off the Dirhandle parameter during the InitializeObjectAttributes, it
does not recurse (but then of course I can’t open the file)). Is there any
way around this? I used ObOpenObjectByPointer to get a handle on the
Related File Object? Is there an ObOpenObjectByPointerHINT?

Ken

No there is not.

----- Original Message -----
From: Ken Galipeau
To: Windows File Systems Devs Interest List
Sent: Monday, January 10, 2005 11:37 PM
Subject: [ntfsd] IoCreateFileSpecifyDeviceObjectHint and Open By File Id

When I call IoCreateFileSpecifyDeviceObjectHint to open a file by id in my create routine, another open by id comes back down through my filter. If I leave off the Dirhandle parameter during the InitializeObjectAttributes, it does not recurse (but then of course I can’t open the file)). Is there any way around this? I used ObOpenObjectByPointer to get a handle on the Related File Object? Is there an ObOpenObjectByPointerHINT?

Ken


Questions? First check the IFS FAQ at https://www.osronline.com/article.cfm?id=17

You are currently subscribed to ntfsd as: unknown lmsubst tag argument: ‘’
To unsubscribe send a blank email to xxxxx@lists.osr.com

Ken,

This is a bug we recently found in IoCreateFileSpecifyDeviceObjectHint. On relative opens it was ignoring the object hint and going recursive. This bug has been fixed in Srv03 SP1 but XP SP2 still has this bug. W2K with filter manager support will have this bug fixed.

Note that on XP and later you can open by objectID without doing a relative open. You can specify a starting backslash and then the binary ID value. Make sure the length is adjusted to include the Unicode backslash.

This syntax will not work on W2K but then the relative open fix should be present.

Neal Christiansen
Microsoft File System Filter Group Lead
This posting is provided “AS IS” with no warranties, and confers no rights


From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Ken Galipeau
Sent: Monday, January 10, 2005 1:37 PM
To: Windows File Systems Devs Interest List
Subject: [ntfsd] IoCreateFileSpecifyDeviceObjectHint and Open By File Id

When I call IoCreateFileSpecifyDeviceObjectHint to open a file by id in my create routine, another open by id comes back down through my filter. If I leave off the Dirhandle parameter during the InitializeObjectAttributes, it does not recurse (but then of course I can’t open the file)). Is there any way around this? I used ObOpenObjectByPointer ?to get a handle on the Related File Object? Is there an ObOpenObjectByPointerHINT?

Ken


Questions? First check the IFS FAQ at https://www.osronline.com/article.cfm?id=17

You are currently subscribed to ntfsd as: unknown lmsubst tag argument: ‘’
To unsubscribe send a blank email to xxxxx@lists.osr.com

Hi Neal,

How does one do a “objectID without doing a relative open” isn’t the object
id unique to the directory? Does this work with 8 byte object ids as well as
16 byte object ids?

A starting slash would imply the volume. I was told if the was no related
file object (for the relative open) I needed to specify
\?<drv>:<objectid>.

Good news about the fixes, however those versions that have the fix also
have the filter manager which make the need for this moot. Long live the
Filter Manager!!!

Thanks,
Ken

-----Original Message-----
From: Neal Christiansen [mailto:xxxxx@windows.microsoft.com]
Sent: Tuesday, January 11, 2005 2:53 AM
To: Windows File Systems Devs Interest List
Subject: RE: [ntfsd] IoCreateFileSpecifyDeviceObjectHint and Open By File Id

Ken,

This is a bug we recently found in IoCreateFileSpecifyDeviceObjectHint. On
relative opens it was ignoring the object hint and going recursive. This
bug has been fixed in Srv03 SP1 but XP SP2 still has this bug. W2K with
filter manager support will have this bug fixed.

Note that on XP and later you can open by objectID without doing a relative
open. You can specify a starting backslash and then the binary ID value.
Make sure the length is adjusted to include the Unicode backslash.

This syntax will not work on W2K but then the relative open fix should be
present.

Neal Christiansen
Microsoft File System Filter Group Lead
This posting is provided “AS IS” with no warranties, and confers no rights

________________________________________
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Ken Galipeau
Sent: Monday, January 10, 2005 1:37 PM
To: Windows File Systems Devs Interest List
Subject: [ntfsd] IoCreateFileSpecifyDeviceObjectHint and Open By File Id

When I call IoCreateFileSpecifyDeviceObjectHint to open a file by id in my
create routine, another open by id comes back down through my filter. If I
leave off the Dirhandle parameter during the InitializeObjectAttributes, it
does not recurse (but then of course I can’t open the file)). Is there any
way around this? I used ObOpenObjectByPointer ?to get a handle on the
Related File Object? Is there an ObOpenObjectByPointerHINT?

Ken


Questions? First check the IFS FAQ at
https://www.osronline.com/article.cfm?id=17

You are currently subscribed to ntfsd as: unknown lmsubst tag argument: ‘’
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: unknown lmsubst tag argument: ‘’
To unsubscribe send a blank email to xxxxx@lists.osr.com

Ken,

The FileID is unique to a volume; it is the index into the MFT plus a sequence number. ObjectID is a GUID and the file system will guarantee that it is unique on a given volume. Yes, this works for both fileIDs and objectID’s.

You do have to include a full and complete drive name (sorry I was not explicit about that) but after the backslash you give the binary fileID or objected.

Neal Christiansen
Microsoft File System Filter Group Lead
This posting is provided “AS IS” with no warranties, and confers no rights


From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Ken Galipeau
Sent: Thursday, January 13, 2005 1:45 PM
To: Windows File Systems Devs Interest List
Subject: RE: [ntfsd] IoCreateFileSpecifyDeviceObjectHint and Open By File Id

Hi Neal,
How does one do a “objectID without doing a relative open” isn’t the object id unique to the directory? Does this work with 8 byte object ids as well as 16 byte object ids?
A starting slash would imply the volume. I was told if the was no related file object (for the relative open) I needed to specify \?<drv>:<objectid>.
Good news about the fixes, however those versions that have the fix also have the filter manager which make the need for this moot. Long live the Filter Manager!!!
Thanks,
Ken

-----Original Message-----
From: Neal Christiansen [mailto:xxxxx@windows.microsoft.com]
Sent: Tuesday, January 11, 2005 2:53 AM
To: Windows File Systems Devs Interest List
Subject: RE: [ntfsd] IoCreateFileSpecifyDeviceObjectHint and Open By File Id
Ken,
This is a bug we recently found in IoCreateFileSpecifyDeviceObjectHint.? On relative opens it was ignoring the object hint and going recursive.? This bug has been fixed in Srv03 SP1 but XP SP2 still has this bug.? W2K with filter manager support will have this bug fixed.
Note that on XP and later you can open by objectID without doing a relative open.? You can specify a starting backslash and then the binary ID value.? Make sure the length is adjusted to include the Unicode backslash.
This syntax will not work on W2K but then the relative open fix should be present.
Neal Christiansen
Microsoft File System Filter Group Lead
This posting is provided “AS IS” with no warranties, and confers no rights
________________________________________
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Ken Galipeau
Sent: Monday, January 10, 2005 1:37 PM
To: Windows File Systems Devs Interest List
Subject: [ntfsd] IoCreateFileSpecifyDeviceObjectHint and Open By File Id
When I call IoCreateFileSpecifyDeviceObjectHint to open a file by id in my create routine, another open by id comes back down through my filter. If I leave off the Dirhandle parameter during the InitializeObjectAttributes, it does not recurse (but then of course I can’t open the file)). Is there any way around this? I used ObOpenObjectByPointer ?to get a handle on the Related File Object? Is there an ObOpenObjectByPointerHINT?
Ken


Questions? First check the IFS FAQ at https://www.osronline.com/article.cfm?id=17
You are currently subscribed to ntfsd as: unknown lmsubst tag argument: ‘’
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: unknown lmsubst tag argument: ‘’
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: unknown lmsubst tag argument: ‘’
To unsubscribe send a blank email to xxxxx@lists.osr.com

I would caution anyone from assuming anything about the structure of a file ID - CDFS supports file IDs and open by ID and I do not believe it uses the MFT model; we have clients with their own proprietary file system that also support open by file ID and do not generate them using an MFT model.

Assuming that the GUID was allocated using a properly implemented allocation program (or routine) it really should be unique across all files over the next thousand years or so.

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 Neal Christiansen
Sent: Sunday, January 23, 2005 10:51 AM
To: ntfsd redirect
Subject: RE: [ntfsd] IoCreateFileSpecifyDeviceObjectHint and Open By File Id

Ken,

The FileID is unique to a volume; it is the index into the MFT plus a sequence number. ObjectID is a GUID and the file system will guarantee that it is unique on a given volume. Yes, this works for both fileIDs and objectID’s.

You do have to include a full and complete drive name (sorry I was not explicit about that) but after the backslash you give the binary fileID or objected.

Neal Christiansen
Microsoft File System Filter Group Lead
This posting is provided “AS IS” with no warranties, and confers no rights


From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Ken Galipeau
Sent: Thursday, January 13, 2005 1:45 PM
To: Windows File Systems Devs Interest List
Subject: RE: [ntfsd] IoCreateFileSpecifyDeviceObjectHint and Open By File Id

Hi Neal,
How does one do a “objectID without doing a relative open” isn’t the object id unique to the directory? Does this work with 8 byte object ids as well as 16 byte object ids?
A starting slash would imply the volume. I was told if the was no related file object (for the relative open) I needed to specify \?<drv>:<objectid>.
Good news about the fixes, however those versions that have the fix also have the filter manager which make the need for this moot. Long live the Filter Manager!!!
Thanks,
Ken

-----Original Message-----
From: Neal Christiansen [mailto:xxxxx@windows.microsoft.com]
Sent: Tuesday, January 11, 2005 2:53 AM
To: Windows File Systems Devs Interest List
Subject: RE: [ntfsd] IoCreateFileSpecifyDeviceObjectHint and Open By File Id
Ken,
This is a bug we recently found in IoCreateFileSpecifyDeviceObjectHint.? On relative opens it was ignoring the object hint and going recursive.? This bug has been fixed in Srv03 SP1 but XP SP2 still has this bug.? W2K with filter manager support will have this bug fixed.
Note that on XP and later you can open by objectID without doing a relative open.? You can specify a starting backslash and then the binary ID value.? Make sure the length is adjusted to include the Unicode backslash.
This syntax will not work on W2K but then the relative open fix should be present.
Neal Christiansen
Microsoft File System Filter Group Lead
This posting is provided “AS IS” with no warranties, and confers no rights
________________________________________
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Ken Galipeau
Sent: Monday, January 10, 2005 1:37 PM
To: Windows File Systems Devs Interest List
Subject: [ntfsd] IoCreateFileSpecifyDeviceObjectHint and Open By File Id
When I call IoCreateFileSpecifyDeviceObjectHint to open a file by id in my create routine, another open by id comes back down through my filter. If I leave off the Dirhandle parameter during the InitializeObjectAttributes, it does not recurse (but then of course I can’t open the file)). Is there any way around this? I used ObOpenObjectByPointer ?to get a handle on the Related File Object? Is there an ObOpenObjectByPointerHINT?
Ken


Questions? First check the IFS FAQ at https://www.osronline.com/article.cfm?id=17
You are currently subscribed to ntfsd as: unknown lmsubst tag argument: ‘’
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: unknown lmsubst tag argument: ‘’
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: unknown lmsubst tag argument: ‘’
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: unknown lmsubst tag argument: ‘’
To unsubscribe send a blank email to xxxxx@lists.osr.com

Tony is correct; you should not make any assumption about the internal structure of a FileID. I mentioned this for NTFS to identify how they were guaranteed to be unique.

Across all file system implementations of FileID’s it is a requirement that they be unique per volume but there is no requirement that they not change.

For example on FAT the fileID is the first cluster of the file so the defrag APIs can change the FileID on fat volumes.

Neal Christiansen
Microsoft File System Filter Group Lead
This posting is provided “AS IS” with no warranties, and confers no rights

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Tony Mason
Sent: Sunday, January 23, 2005 8:12 AM
To: Windows File Systems Devs Interest List
Subject: RE: [ntfsd] IoCreateFileSpecifyDeviceObjectHint and Open By File Id

I would caution anyone from assuming anything about the structure of a file ID - CDFS supports file IDs and open by ID and I do not believe it uses the MFT model; we have clients with their own proprietary file system that also support open by file ID and do not generate them using an MFT model.

Assuming that the GUID was allocated using a properly implemented allocation program (or routine) it really should be unique across all files over the next thousand years or so.

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 Neal Christiansen
Sent: Sunday, January 23, 2005 10:51 AM
To: ntfsd redirect
Subject: RE: [ntfsd] IoCreateFileSpecifyDeviceObjectHint and Open By File Id

Ken,

The FileID is unique to a volume; it is the index into the MFT plus a sequence number. ObjectID is a GUID and the file system will guarantee that it is unique on a given volume. Yes, this works for both fileIDs and objectID’s.

You do have to include a full and complete drive name (sorry I was not explicit about that) but after the backslash you give the binary fileID or objected.

Neal Christiansen
Microsoft File System Filter Group Lead
This posting is provided “AS IS” with no warranties, and confers no rights


From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Ken Galipeau
Sent: Thursday, January 13, 2005 1:45 PM
To: Windows File Systems Devs Interest List
Subject: RE: [ntfsd] IoCreateFileSpecifyDeviceObjectHint and Open By File Id

Hi Neal,
How does one do a “objectID without doing a relative open” isn’t the object id unique to the directory? Does this work with 8 byte object ids as well as 16 byte object ids?
A starting slash would imply the volume. I was told if the was no related file object (for the relative open) I needed to specify \?<drv>:<objectid>.
Good news about the fixes, however those versions that have the fix also have the filter manager which make the need for this moot. Long live the Filter Manager!!!
Thanks,
Ken

-----Original Message-----
From: Neal Christiansen [mailto:xxxxx@windows.microsoft.com]
Sent: Tuesday, January 11, 2005 2:53 AM
To: Windows File Systems Devs Interest List
Subject: RE: [ntfsd] IoCreateFileSpecifyDeviceObjectHint and Open By File Id
Ken,
This is a bug we recently found in IoCreateFileSpecifyDeviceObjectHint.? On relative opens it was ignoring the object hint and going recursive.? This bug has been fixed in Srv03 SP1 but XP SP2 still has this bug.? W2K with filter manager support will have this bug fixed.
Note that on XP and later you can open by objectID without doing a relative open.? You can specify a starting backslash and then the binary ID value.? Make sure the length is adjusted to include the Unicode backslash.
This syntax will not work on W2K but then the relative open fix should be present.
Neal Christiansen
Microsoft File System Filter Group Lead
This posting is provided “AS IS” with no warranties, and confers no rights
________________________________________
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Ken Galipeau
Sent: Monday, January 10, 2005 1:37 PM
To: Windows File Systems Devs Interest List
Subject: [ntfsd] IoCreateFileSpecifyDeviceObjectHint and Open By File Id
When I call IoCreateFileSpecifyDeviceObjectHint to open a file by id in my create routine, another open by id comes back down through my filter. If I leave off the Dirhandle parameter during the InitializeObjectAttributes, it does not recurse (but then of course I can’t open the file)). Is there any way around this? I used ObOpenObjectByPointer ?to get a handle on the Related File Object? Is there an ObOpenObjectByPointerHINT?
Ken


Questions? First check the IFS FAQ at https://www.osronline.com/article.cfm?id=17
You are currently subscribed to ntfsd as: unknown lmsubst tag argument: ‘’
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: unknown lmsubst tag argument: ‘’
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: unknown lmsubst tag argument: ‘’
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: unknown lmsubst tag argument: ‘’
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: unknown lmsubst tag argument: ‘’
To unsubscribe send a blank email to xxxxx@lists.osr.com