Обработка заполнителей
Руководство по минифильтрам, реализующим заполнители
Все реализации виртуализации, использующие заполнители , должны задавать атрибут файла FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS для этих заполнителей. Этот атрибут указывает, что:
- Чтение таких файлов из-под минифильтра-владельцем может возвращать значения 0, и
- Чтение таких файлов из выше владельцев минифильтра влечет за собой дополнительные расходы на предоставление данных.
Мини-фильтр может удалить этот атрибут из заполнителя, когда все данные будут доступны локально.
Все минифильтры, реализующие заполнители, должны находиться в группе порядка загрузки HSM.
Руководство по всем минифильтрам
Фильтры не должны выдавать целевые операции чтения и записи из экземпляров фильтров под группой порядка загрузки HSM для файлов, для которых задан атрибут FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS. Такая ситуация может привести к повреждению данных файла. Разработчик минифильтра может попытаться обойти эту ситуацию, отправив запрос ввода-вывода в верхнюю часть стека, но такой запрос может привести к взаимоблокировкам.
Фильтры также не должны выдавать операции чтения и записи в файлах-заполнителях, которые имеют атрибут FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS, заданный над группой порядка загрузки HSM. Такое чтение или запись вызывает ненужную гидратацию, если ни в каких приложениях пользователя не было запрошено данных файла.
Мини-фильтр не должен выдавать операции чтения и записи при перехвате открытий только атрибутов. Такие операции чтения и записи могут привести к взаимоблокировкам, так как некоторые реализации не ожидают, что открытия только для атрибутов преобразуются в операции доступа к данным. Кроме того, такие операции чтения и записи не позволяют проверять минифильтр на наличие FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS, чтобы избежать двух вышеупомянутых ситуаций.
Поэтому рекомендуется, чтобы все минифильтры не выпускали операции чтения и записи в файлах, для которых заданы FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS.