Вход/Регистрация
Серверные технологии хранения данных в среде Windows® 2000 Windows® Server 2003
вернуться

Дайлип Наик

Шрифт:

утилиты пользовательского режима для создания, управления и удаления точек повторной обработки;

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

Рис. 10.1. Структура тега точки повторной обработки

Каждая точка повторной обработки состоит из тега и объекта данных. Тег – это уникальное 32-разрядное число, назначаемое непосредственно Microsoft. Независимые производители могут запросить назначение специального тега. На рис. 10.1 показана структура тега повторной обработки, включая следующие элементы:

бит (М), который указывает, что тег принадлежит драйверу устройства от Microsoft;

бит (L), который указывает на значительные задержки при получении драйвером первого байта данных; в качестве примера моэкно указать службу HSM, при использовании которой получение данных с неинтерактивного носителя может осуществляться достаточно долго;

бит (N), который указывает, что файл или каталог представляют собой ссылку/перенаправление на другой файл или каталог;

зарезервированные биты;

фактическое 16-разрядное значение тега.

Объект данных точки повторной обработки может иметь размер до 16 Кбайт. Файловая система NTFS обеспечивает предоставление этого объекта данных драйверу устройства, созданному производителем. Объект данных предоставляется в процессе использования тбчки повторной обработки в подсистеме ввода-вывода.

На рис. 10.2 рассматривается последовательность рабочих операций и реализация точек повторной обработки. Предполагается, что пользователь обладает необходимыми привилегиями для выполнения запрошенной операции. Кроме того, на рис. 10.2 показан только драйвер фильтрации файловой системы, что позволяет сконцентрироваться исключительно на точках повторной обработки.

Рис. 10.2. Использование точки повторной обработки

Как показано на рис. 10.2, для реализации возможностей точки повторной обработки применяется несколько этапов.

1. Средствами подсистемы Win32 приложение отправляет запрос на открытие файла.

После проверок подсистема Win32 отправляет запрос выполняемому модулю Windows NT.

Диспетчер ввода-вывода Windows NT создает пакет IRP (IRP_MJ_0PEN) и отправляет его NTFS. Пакет IRP перехватывается драйвером точки повторной обработки в файловой системе.

Драйвер фильтрации перехватывает пакет IRP, определяет процедуру завершения, которая будет вызвана после завершения обработки пакета IRP, и средствами диспетчера ввода-вывода отправляет пакет IRP драйверу NTFS.

Пакет IRP достигает файловой системы, которая обрабатывает пакет IRP_MJ_0PEN, находит необходимый файл или каталог и отмечает ассоциированный с ними тег точки повторной обработки. Затем NTFS помещает тег и данные повторной обработки в пакет IRP и неудачно завершает обработку пакета IRP со специальным кодом ошибки.

Далее подсистема ввода-вывода вызывает каждый драйвер фильтрации (по одному за раз), который зарегистрировал процедуру завершения

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

7. Файловая система NTFS завершает обработку повторно отправленного пакета IRP. Типичным примером может служить изменение пути и успешное завершение запроса. Диспетчер ввода-вывода завершает запрос на открытие файла, после чего через процедуры завершения может быть вызван каждый драйвер фильтрации файловой системы. Наконец обработка пакета IRP завершается, и приложение получает дескриптор файла.

Если ни один драйвер фильтрации не распознает тег точки повторной обработки, запрос на открытие файла или каталога завершается неудачно.

Одним приложениям требуются сведения о наличии точек повторной обработки, в то время как другим они совершенно не нужны. К последним, например, относятся приложения Microsoft Office, поэтому при открытии документа Word, PowerPoint или Excel функции точки повторной обработки, которая перенаправляет запрос на открытие на другой том, во внимание не принимаются. Тем не менее некоторым приложениям, которые рекурсивно просматривают дерево каталогов, требуются сведения о возможности создания зацикленных путей. Приложения могут аннулировать функции точек повторной обработки, передав соответствующие параметры (FILE_OPEN_REPARSE_POINT) 1 в запросах CreateFile, DeleteFile и RemoveDir. Именно таким образом можно создавать, удалять и модифицировать точки повторной обработки. Функция GetVolumelnf ormation возвращает флаг FILE_SUPPORTS_REPARSE_POINTS. Функции FindFirstFile и FindNextFile возвращают флаг FILE_ATTRIBUTE_ REPARSE_POINT для указания на наличие точки повторной обработки.

  • Читать дальше
  • 1
  • ...
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: