Explorer crashes passing us too long paths

When we experiment with our FSD by copying deep folders, Windows is
requesting that we create a folder whose parent path is nearly MAX_PATH in
length and when combined with the ‘New Folder’ it exceeds it. Explorer
crashes, probably because it is overrunning it’s MAX_PATH buffer.

I tested this with other FSD, both NTFS and Windows network and find that
Windows handles it gracefully with an error dialog and never makes the
problematic call to the FSD. (I am spying on the requests using
sysinternal.com’s NTFileMon).

Is there any thing my FSD needs to do to make Windows behave this way?

Thanks,
Ken

typedef struct _FILE_FS_ATTRIBUTE_INFORMATION {
ULONG FileSystemAttributes;
LONG MaximumComponentNameLength;
ULONG FileSystemNameLength;
WCHAR FileSystemName[1];
} FILE_FS_ATTRIBUTE_INFORMATION, *PFILE_FS_ATTRIBUTE_INFORMATION;

Are you setting MaximumComponentNameLength to 255 like Fastfat does?

  • Nicholas Ryan

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@miramar.com
Sent: Tuesday, September 24, 2002 5:16 PM
To: File Systems Developers
Subject: [ntfsd] Explorer crashes passing us too long paths

When we experiment with our FSD by copying deep folders, Windows is
requesting that we create a folder whose parent path is nearly MAX_PATH
in length and when combined with the ‘New Folder’ it exceeds it.
Explorer crashes, probably because it is overrunning it’s MAX_PATH
buffer.

I tested this with other FSD, both NTFS and Windows network and find
that Windows handles it gracefully with an error dialog and never makes
the problematic call to the FSD. (I am spying on the requests using
sysinternal.com’s NTFileMon).

Is there any thing my FSD needs to do to make Windows behave this way?

Thanks,
Ken — You are currently subscribed to ntfsd as: xxxxx@nryan.com To
unsubscribe send a blank email to %%email.unsub%%

We are setting it to 170.

I understand the MaximumComponentNameLength field to indicate the length
of a single component of a path, i.e. a file/folder name.

Any other thoughts?

Ken

“Nicholas Ryan”
Sent by: xxxxx@lists.osr.com
09/24/2002 05:33 PM
Please respond to “File Systems Developers”

To: “File Systems Developers”
cc:
Subject: [ntfsd] RE: Explorer crashes passing us too long paths

typedef struct _FILE_FS_ATTRIBUTE_INFORMATION {
ULONG FileSystemAttributes;
LONG MaximumComponentNameLength;
ULONG FileSystemNameLength;
WCHAR FileSystemName[1];
} FILE_FS_ATTRIBUTE_INFORMATION, *PFILE_FS_ATTRIBUTE_INFORMATION;

Are you setting MaximumComponentNameLength to 255 like Fastfat does?
- Nicholas Ryan
<?xml:namespace prefix = o ns = “urn:schemas-microsoft-com:office:office”
/>
-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@miramar.com
Sent: Tuesday, September 24, 2002 5:16 PM
To: File Systems Developers
Subject: [ntfsd] Explorer crashes passing us too long paths

When we experiment with our FSD by copying deep folders, Windows is
requesting that we create a folder whose parent path is nearly MAX_PATH in
length and when combined with the ‘New Folder’ it exceeds it. Explorer
crashes, probably because it is overrunning it’s MAX_PATH buffer.

I tested this with other FSD, both NTFS and Windows network and find that
Windows handles it gracefully with an error dialog and never makes the
problematic call to the FSD. (I am spying on the requests using
sysinternal.com’s NTFileMon).

Is there any thing my FSD needs to do to make Windows behave this way?

Thanks,
Ken — You are currently subscribed to ntfsd as: xxxxx@nryan.com To
unsubscribe send a blank email to %%email.unsub%%

You are currently subscribed to ntfsd as: xxxxx@miramar.com
To unsubscribe send a blank email to %%email.unsub%%

You’re right, that was a red herring…

It actually seems to be enforced by the constant MAX_LFN_CHARACTERS in
Fastfat. Do a search and see how it’s used.

  • Nicholas Ryan

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@miramar.com
Sent: Wednesday, September 25, 2002 9:43 AM
To: File Systems Developers
Subject: [ntfsd] RE: Explorer crashes passing us too long paths

We are setting it to 170.

I understand the MaximumComponentNameLength field to indicate the length
of a single component of a path, i.e. a file/folder name.

Any other thoughts?

Ken

“Nicholas Ryan”
Sent by: xxxxx@lists.osr.com

09/24/2002 05:33 PM
Please respond to “File Systems Developers”

To: “File Systems Developers”
cc:
Subject: [ntfsd] RE: Explorer crashes passing us too long
paths

typedef struct _FILE_FS_ATTRIBUTE_INFORMATION {
ULONG FileSystemAttributes;
LONG MaximumComponentNameLength;
ULONG FileSystemNameLength;
WCHAR FileSystemName[1];
} FILE_FS_ATTRIBUTE_INFORMATION, *PFILE_FS_ATTRIBUTE_INFORMATION;

Are you setting MaximumComponentNameLength to 255 like Fastfat does?

- Nicholas Ryan

<?xml:namespace prefix = o ns =
“urn:schemas-microsoft-com:office:office” />

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@miramar.com
Sent: Tuesday, September 24, 2002 5:16 PM
To: File Systems Developers
Subject: [ntfsd] Explorer crashes passing us too long paths

When we experiment with our FSD by copying deep folders, Windows is
requesting that we create a folder whose parent path is nearly MAX_PATH
in length and when combined with the ‘New Folder’ it exceeds it.
Explorer crashes, probably because it is overrunning it’s MAX_PATH
buffer.

I tested this with other FSD, both NTFS and Windows network and find
that Windows handles it gracefully with an error dialog and never makes
the problematic call to the FSD. (I am spying on the requests using
sysinternal.com’s NTFileMon).

Is there any thing my FSD needs to do to make Windows behave this way?

Thanks,
Ken — You are currently subscribed to ntfsd as: xxxxx@nryan.com To
unsubscribe send a blank email to %%email.unsub%%

You are currently subscribed to ntfsd as: xxxxx@miramar.com
To unsubscribe send a blank email to %%email.unsub%%

— You are currently subscribed to ntfsd as: xxxxx@nryan.com To
unsubscribe send a blank email to %%email.unsub%%