Блокировка устаревших драйверов фильтров файловой системы

Начиная с Windows 10 версии 1607, администраторы и разработчики драйверов могут использовать параметр реестра для блокировки и разблокировки устаревших драйверов фильтров файловой системы. Устаревшие драйверы фильтров файловой системы присоединяются к стеку файловой системы напрямую и не используют диспетчер фильтров.

В этой статье описывается параметр реестра и событие, введенное в журнал событий системы, когда фильтр устаревшей файловой системы (FS) заблокирован. Описывается также, как проверить, работают ли в операционной системе устаревшие драйверы файловой системы.

Блокировка устаревших драйверов

Используйте ключ реестра IoBlockLegacyFsFilters, чтобы указать, блокирует ли система устаревшие драйверы фильтров FS. При блокировке все устаревшие драйверы фильтров FS блокируются при загрузке. Чтобы изменения реестра вступили в силу, выполните перезагрузку системы.

Раздел реестра должен быть создан в следующей ветке реестра:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\I/O System

В следующей таблице описаны допустимые значения DWORD для ключа IoBlockLegacyFsFilters .

Значение IoBlockLegacyFsFilters Описание
1 Устаревшие драйверы фильтров FS блокируют загрузку или присоединение к томам хранилища.
0 Устаревшие драйверы фильтров FS не блокируются. Поведение по умолчанию.

На следующем рисунке показано, как выглядит ключ в редакторе реестра.

Изображение, демонстрирующее, как изменить ключ реестра ioblocklegacyfsfilters.

Пример: если устаревший драйвер заблокирован при загрузке

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

Свойство события Описание
Имя журнала Система
Источник Microsoft-Windows-Kernel-IO
Дата 29.12.2015 14:55:05
ИД события 1205
Категория задачи нет
Уровень Ошибка
Ключевые слова
Пользователь CONTOSO\user
Компьютер user.domain.corp.contoso.com
Описание Windows настроена для блокировки устаревших фильтров FS. Имя фильтра: \Driver\sfilter

Как проверить, выполняются ли устаревшие драйверы

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

  1. Откройте командную строку с повышенными привилегиями, выбрав и удерживая (или щелкнув правой кнопкой мыши) значок cmd.exe и выбрав команду "Запуск от имени администратора".
  2. Тип: fltmc filters
  3. Найдите устаревшие драйверы, это те, которые имеют значение Frame<Legacy>.

В этом примере выполняются три фильтра. Устаревшие драйверы фильтров FS — AVLegacy и EncryptionLegacy — помечены значением <Legacy Frame>. AVMiniFilter не имеет <значения устаревшего> кадра, так как это драйвер минифильтра (он не подключается к стеку FS напрямую и использует диспетчер фильтров).

C:\Windows\system32>fltmc filters

Filter Name                     Num Instances    Altitude    Frame
------------------------------  -------------  ------------  -----
AVLegacy                                        389998.99   <Legacy>
EncryptionLegacy                                149998.99   <Legacy>
AVMiniFilter                           3        328000         0

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

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