Question

MSDN says "There is a limit of 31 reparse points on any given path." (http://msdn.microsoft.com/en-us/library/windows/desktop/aa365503%28v=vs.85%29.aspx) So, a single file can have max. 31 reparse points (?)

To check if a file has "a" reparse point, GetFileAttributes can be used (mentioned here: http://msdn.microsoft.com/en-us/library/windows/desktop/aa365507%28v=vs.85%29.aspx) and to get the content of "the" reparse point DeviceIoControl with FSCTL_GET_REPARSE_POINT is needed (cant post a third link because of low reputation)

But i see no possibility to specify what reparse data i want if there are multiple? GetFileAttributes will say only Yes/No instead of a count or something like that, and DeviceIoControl will fill one single REPARSE_GUID_DATA_BUFFER structure (according to MSDN), without any possibilty to give a GUID or index or somtehing like that.

edit: My question if i´ve understood this with 31 reparse points right and how i can access them.

Was it helpful?

Solution

I understood the MSDN docs wrong: A file/directory itself can have only one reparse point itself (and a directory can have more than 31 files/directories with reparse points in it, of course)

The limit 31 is only valid for nested symlinks (etc.), ie. Case 1: Link1->Link2, Link2->Link3, ... Link32->RealDir Here it would not be possible to open Link1 if i want RealDir Case 2: If i want to open C:\L1\L2\L3\L4...\L32\file.txt and L1 is a symlink to another directory, the target´s subdirectory L2 is another symlink, and so on, this too wouldn´t be possible with >31 nested links.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top