Отслеживание распределенных ссылок и идентификаторы объектов

Хранение ссылки на файл или каталог с помощью пути и имени файла не является надежным. Если пользователь переименовывает файл, он прерывает ссылки на файл. Если пользователь переименовывает каталог, он прерывает ссылки на файл и все файлы и вложенные каталоги в дереве каталогов.

Служба отслеживания распределенных ссылок позволяет клиентским приложениям отслеживать перемещенные источники ссылок. Клиенты, которые подписываются на службу отслеживания ссылок, могут поддерживать целостность своих ссылок, и объекты можно отслеживать таким образом, чтобы он был прозрачным для пользователя.

Идентификаторы объектов

Служба отслеживания ссылок сохраняет свою ссылку на объект с помощью идентификатора объекта (ID). Идентификатор объекта — это необязательный атрибут, который однозначно идентифицирует файл или каталог в томе.

Индекс всех идентификаторов объектов хранится в томе. Переименование, резервное копирование и восстановление операций сохранения идентификаторов объектов. Однако операции копирования не сохраняют идентификаторы объектов, так как это нарушает их уникальность.

Вы можете выполнить следующие операции с идентификаторами объектов:

  • Создание
  • Удаление
  • Query

При создании идентификатора объекта необходимо установить удостоверение файла в службе отслеживания ссылок. И наоборот, при удалении идентификатора объекта служба отслеживания ссылок перестает поддерживать ссылки на файл. Список кодов управления файловой системой, выполняющих операции с идентификаторами объектов, см. в разделе "Коды управления файлами".

Служба отслеживания распределенных ссылок отслеживает источники ссылок для сочетаний клавиш оболочки и ссылок OLE в томах файловой системы NTFS. Клиент ссылки может исправить сломанную ссылку с обновленными сведениями о новом расположении источника ссылки.

Сочетания клавиш оболочки включают эвристическое отслеживание ссылок, использующее алгоритм поиска дерева для поиска совпадения для источника перемещенной ссылки. Алгоритм поиска основан на последнем известном пути к данным файла и файла, включающим дату создания, размер файла и имя файла и расширение.

Связывание OLE включает в себя те же эвристические ссылки отслеживания. Windows также включает в себя то же эвристическое отслеживание ссылок с некоторыми дополнительными улучшениями для поиска пространств имен, чтобы получить результаты в некоторых распространенных сценариях. Улучшения включают в себя следующую процедуру, которая зависит от ограничений времени, введенных клиентским приложением.

Поиск пространств имен

  1. Выполните поиск по четыре уровням каталога вниз от последнего каталога.
  2. Переместите один каталог и повторите шаги 1 и 2 еще три раза, что может дать результаты, если объект переместился рядом.
  3. Выполните поиск четырех уровней вниз от корневого каталога рабочего стола, что может дать результаты, если объект перемещен в расположение на одном рабочем столе.
  4. Выполните поиск четырех уровней вниз от корневого каталога на каждом локальном фиксированном диске.
  5. Повторите шаги 1–3 без ограничения четырех каталогов.

Примечание.

Эти схемы отслеживания ссылок прозрачны для конечного пользователя. Однако они не всегда дают положительные результаты и могут занять много времени.

 

Дополнительные сведения о сочетаниях клавиш оболочки см. в разделе IShellLink.

Дополнительные сведения о ссылках OLE см. в разделе IOleLink.

Если ссылка сделана на файл в NTFS 3.0 или более поздней версии, и файл перемещается в любой другой том с NTFS 3.0 или более поздней версии в одном домене, файл можно найти службой отслеживания, учитывая рекомендации по времени. Кроме того, если файл перемещается за пределы домена или в рабочей группе, он найден.

Чтобы получить версию тома NTFS, откройте командную строку с правами доступа администратора и выполните следующую команду:

fsutil fsinfo ntfsinfo X:

где X — буква диска тома.

При создании ссылки на файл целевой файл считается источником ссылки, и создатель ссылки является клиентом ссылки. Например, если для ссылки на текстовый документ создается ярлык оболочки, текстовый документ является источником ссылки, а ярлык оболочки — клиент ссылки.

Служба отслеживания распределенных ссылок поддерживает ссылки на файлы для следующих ситуаций, возникающих в домене:

  • Исходный файл ссылки перемещается из одного тома файловой системы NTFS в другой в том же домене.
  • Имя компьютера, в котором хранится источник ссылки, переименовано.
  • Сетевые ресурсы на исходном компьютере канала изменяются.
  • Том, содержащий исходный файл ссылки, перемещается на другой компьютер в том же домене.

Служба отслеживания распределенных ссылок также пытается поддерживать ссылки в предыдущих ситуациях, даже если они не происходят в домене, то есть они являются междоменной или в рабочей группе. Ссылки всегда могут поддерживаться в таких ситуациях, когда сетевая папка на исходном компьютере канала изменяется. Они также могут поддерживаться при перемещении источника ссылки на компьютере. Ссылки обычно могут поддерживаться при перемещении источника ссылок на другой компьютер, но эта форма отслеживания менее надежна с течением времени.

Функции отслеживания ссылок в основном реализованы в виде следующих двух системных служб:

  • Клиент отслеживания изменившихся связей
  • Сервер отслеживания распределенных ссылок

Клиент отслеживания распределенных ссылок

Клиент отслеживания распределенных ссылок выполняется на всех компьютерах и управляет действиями отслеживания ссылок для этого компьютера. К этим действиям относятся поиск источников ссылок и перемещение источника канала обработки. При перемещении источника связи служба передает сведения серверу отслеживания распределенных ссылок, работающему на контроллерах домена.

Сервер отслеживания распределенных ссылок

Сервер отслеживания распределенных ссылок выполняется на каждом контроллере домена в домене. Служба принимает уведомления о файлах и томах, перемещаемых из службы отслеживания на компьютере, и позволяет клиенту отслеживания распределенных ссылок запрашивать текущее расположение источника ссылки.

Эта служба сервера хранит сведения в контроллерах домена о томах и файлах, которые были перемещены. Сведения о перемещениях не могут увеличиваться за пределы определенного размера, и он автоматически удаляется, если он становится ненужным.

Службы отслеживания ссылок предоставляются интерфейсами IShellLink и IOleLink . Поэтому они используются ярлыками оболочки. При вызове метода IShellLink::Resolve и не удается найти файл ссылки, например при активации ярлыка оболочки, служба отслеживания вызывается автоматически для поиска файла. Аналогичным образом, если реализация IOleLink не может найти файл, например в методе BindToSource , он автоматически вызывается в службе отслеживания.

Службы отслеживания распределенных ссылок доступны только в файловой системе NTFS и доступны только для источников ссылок в NTFS 3.0 или более поздней версии. Таким образом, если источник ссылки перемещается в том файловой системы FAT, данные отслеживания теряются. Кроме того, если источник ссылки перемещается между NTFS 3.0 или более поздней, но компьютер, выполняющий перемещение, выполняет более раннюю версию Windows, данные отслеживания ссылок теряются. Если сведения об отслеживании ссылок потеряны, то никакого вреда самому исходному файлу ссылки не оказывается, он просто не отслеживается службами отслеживания распределенных ссылок.

Чтобы получить версию тома NTFS, откройте командную строку с правами доступа администратора и выполните следующую команду:

fsutil fsinfo ntfsinfo X:

где X — буква диска тома.

Ссылки на файлы на съемных носителях не поддерживаются. Кроме того, служба отслеживания не распознает новый том файловой системы NTFS до повторной загрузки системы. Новый том может стать доступным из-за повторной секционирования, переформатирования тома файловой системы FAT в файловую систему NTFS или подключения нового внешнего диска.