C / C ++, NTFS. Несколько точек повторного анализа

MSDN говорит: «На каждом заданном пути есть ограничение в 31 точку повторной обработки». (http://msdn.microsoft.com/en-us/library/windows/desktop/aa365503%28v=vs.85%29.aspx)
Таким образом, один файл может иметь макс. 31 повторных очка (?)

Чтобы проверить, имеет ли файл точку повторной обработки «a», можно использовать GetFileAttributes.
(упоминается здесь: http://msdn.microsoft.com/en-us/library/windows/desktop/aa365507%28v=vs.85%29.aspx)
и чтобы получить содержимое «точки» повторной обработки DeviceIoControl с FSCTL_GET_REPARSE_POINT (не могу опубликовать третью ссылку из-за низкой репутации)

Но я не вижу возможности указать, какие данные повторного анализа мне нужны, если их несколько?
GetFileAttributes будет говорить только Да / Нет вместо подсчета или что-то в этом роде,
и DeviceIoControl заполнит одну единственную структуру REPARSE_GUID_DATA_BUFFER (в соответствии с MSDN), без какой-либо возможности дать GUID или индекс или что-то подобное.

редактировать: мой вопрос, если я понял это с 31 точками разбора правильно и как я могу получить к ним доступ.

1

Решение

Я неправильно понял документы MSDN:
Сам файл / каталог может иметь только одну точку повторной обработки
(и каталог может иметь более 31 файла / каталога с точками повторения, конечно)

Предел 31 действителен только для вложенных символических ссылок (и т. Д.), Т.е.
Случай 1:
Link1-> Link2, Link2-> Link3, … Link32-> RealDir
Здесь было бы невозможно открыть Link1, если я хочу RealDir
Случай 2:
Если я хочу открыть C: \ L1 \ L2 \ L3 \ L4 … \ L32 \ file.txt
и L1 является символической ссылкой на другой каталог,
подкаталог цели L2 является еще одной символической ссылкой, и так далее,
это также не было бы возможно с> 31 вложенными ссылками.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]