О Windows из первых рук: Прыг да скок!

Списки переходов — это одна из новинок Windows 7, которая позволяет перескакивать к недавно использованным элементам избранного. Но «прыгать» надо с осторожностью.

Реймонд Чен

Почему список переходов содержит только одну запись для NAS-хранилища? Ответ — ошибочная уникальность. Список переходов — новая функциональность в Windows 7, которая позволяет быстро обращаться к недавно используемым элементам. Можно также закрепить нужный элемент в списке, чтобы к нему можно было быстро обратиться.

Один пользователь заметил, что если открыть несколько файлов в подключенном к сети хранилище (NAS), в списке переходов Windows 7 будет присутствовать только самый последний файл. Если закрепить в списке переходов один элемент, а затем попытаться закрепить второй, то закрепление первого будет автоматически отменено. Пользователь хотел знать, почему в списке переходов может содержаться только один элемент, ссылающийся на NAS-устройство.

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

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

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

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

Уникальный, как и все остальные

В команде разработчиков списка переходов разработали на это случай теорию: определенные NAS-устройства могут сообщать, что поддерживают идентификаторы объектов. Если спросить: «Какой идентификатор объекта у этого файла?», NAS-устройство ответит: «Пять».

Но если дальше спросить о другом файле, то NAS-устройство ответит: «И у этого идентификатор пять».

«А этот файл?»

«Пять!»

То есть о каком файле не спроси, всегда получишь идентификатор «пять».

Вообще-то, идентификатор не пять, а 48-байтовый блок данных. Но фишка в то, что один и тот же 48-байтовый блок предоставляется в качестве идентификатора любого файла на устройстве. Это заставляет список переходов считать, что все файлы на устройстве это один и тот же файл, поэтому «дубликаты» законным образом удаляются.

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

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

Раймонд Чен (Raymond Chen)

Раймонд Чен (Raymond Chen)— его веб-сайт и одноименная книга «Old New Thing», вышедшая в издательстве Addison-Wesley в 2007 году, рассказывает об истории Windows, программировании с использованием интерфейса Win32 и крике с частотой 1170 Гц..