views:

35

answers:

1

Hi,

I am trying to test the 31 reparse point limit mentioned for Symbolic link in Visa. But I could not reproduce by any of following listed cases. Can someone guide?

1) Created 36 symlinks in a directory c:\temp\testlink for a executable residing in c:\temp\testlink.

2) Created 36 symlinks in a directory c:\temp\testlink to 36 different executables residing in c:\temp\testlink.

3) Created 36 symlinks in a directory c:\temp1 for 36 different executables residing in c:\temp\testlink.

How does this limit act in Windows 7 and 2008?

-Karthik

+3  A: 

The limit refers to the number of reparse points that Windows can follow when evaluating a single path. For instance, C:\a\b\c\d\e can have up to five reparse points (you may have to forgive any off-by-one errors), one for each directory level in the path.

I don't believe there is any specific limit on how many reparse points a directory can have.

Marcelo Cantos
For those who want to check, take a look at ObpLookupObjectName in the kernel.
wj32
Hi Marcelo, thanks for your reply. I tried creating a link to a file existing in c:\temp\1\2\3\..\32 and it got succeeded in Vista. Am I doing anything wrong here?-Karthik
Kartlee
That path is only going through a single reparse point. The limit applies when 1 is a reparse point to a directory containing 2, which is another reparse point containing 3, which is ... I hope you get the drift.
Marcelo Cantos
In other words it's talking about a chain of symlinks.
Kate Gregory
Thanks Marcelo. That was useful and I simulated the behavior by following approach:In "c:\temp" created following directories: 1\1.lnk <SYMBOLIC LINK> 2\2.lnk <SYMBOLIC LINK> 3\3.lnk <SYMBOLIC LINK> .......31\31.lnk <SYMBOLIC LINK> 32In directory 32, I copied a file test.dll.Now when I create a symbolic link to test.dll residing in directory 32 as 'mklink c:\temp\testtarget.dll c:\temp\1\1.lnk\test.dll' this failed to work properly. This has to go through 32 reparsing points to get the test.dll. Hope what I did is right.
Kartlee
And did you confirm it works for 31?
Kate Gregory