1

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.

4

1 回答 1

2

我理解 MSDN 文档是错误的:一个文件/目录本身只能有一个重解析点(当然,一个目录可以有超过 31 个带有重解析点的文件/目录)

限制 31 仅对嵌套符号链接(等)有效,即。案例 1:Link1->Link2, Link2->Link3, ... Link32->RealDir 如果我想要 RealDir 则无法打开 Link1 案例 2:如果我想要打开 C:\L1\L2\L3\ L4...\L32\file.txt 和 L1 是指向另一个目录的符号链接,目标的子目录 L2 是另一个符号链接,依此类推,这对于 >31 个嵌套链接也是不可能的。

于 2013-12-26T09:41:53.353 回答