Из статей, которые я нашел в Интернете, похоже, есть две формы уникальных идентификаторов для файлов в NTFS:
Используя Windows API GetFileInformationByHandle (), мы можем получить доступ к структуре BY_HANDLE_FILE_INFORMATION, http://msdn.microsoft.com/en-us/library/aa363788 (VS.85) .aspx
$ Object_ID - Статья http://blogs.technet.com/b/ askcore / archive / 2010/08/25 / ntfs-file-attributes.aspx указывает:
$ OBJECT_ID - это атрибут, содержащий идентификатор. Этот идентификатор используется службой отслеживания распределенных ссылок. Пример того, как он используется, можно найти в ярлыках. Создайте на рабочем столе ярлык, указывающий на файл. Затем переместите этот файл. Ярлык по-прежнему будет работать, потому что он использует способ привязки исходного файла, отличный от пути и имени файла.
Не все файлы будут иметь атрибут $ OBJECT_ID. Фактически, атрибут добавляется к файлу только после того, как будет назначен фактический идентификатор.
Я пытаюсь понять, когда установлен идентификатор объекта. Вот несколько вопросов:
Когда присваивается идентификатор объекта? На основании приведенной выше статьи может показаться, что в одном сценарии это происходит, когда создается ярлык для файла.
Присваивается ли идентификатор объекта автоматически, когда файл ссылается на другой файл, например документ Word, в который встроена диаграмма Visio ?
Назначаются ли идентификаторы объектов только при включенном / запущенном распределенном отслеживании ссылок или они существуют независимо от распределенного отслеживания ссылок?
Если бы я хотел отслеживать уникальный идентификатор для файла, было бы для меня какое-то преимущество использовать идентификатор объекта (64 байта) вместо объединенного серийного номера тома и индекса файла (младший / старший), которые вместе составляют 12 байт.
Спасибо, Элан