阻止旧版文件系统筛选器驱动程序
从 Windows 10 版本 1607 开始,管理员和驱动程序开发人员可以使用注册表设置来阻止和取消阻止旧文件系统筛选器驱动程序。 旧文件系统筛选器驱动程序直接附加到文件系统堆栈,并且不使用筛选器管理器。
本文介绍当旧文件系统 (FS) 筛选器被阻止时,注册表设置和系统事件日志中输入的事件。 同时还介绍了如何检查 OS 是否运行了旧 FS 驱动程序。
如何阻止旧驱动程序
使用 IoBlockLegacyFsFilters 注册表项来指示系统是否阻止旧 FS 筛选器驱动程序。 当被阻止时,所有旧 FS 筛选器驱动程序都将被阻止加载。 若要使注册表更改生效,请重新启动系统。
必须在以下注册表路径下创建注册表项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\I/O System
下表介绍了 IoBlockLegacyFsFilters 键的有效 DWORD 值。
IoBlockLegacyFsFilters 值 | 说明 |
---|---|
1 | 旧 FS 筛选器驱动程序被阻止加载或连接到存储卷。 |
0 | 旧 FS 筛选器驱动程序未被阻止。 此选项为默认行为。 |
下图显示了注册表编辑器中键的外观。
示例:当阻止旧驱动程序加载时
当旧 FS 筛选器驱动程序被阻止加载时,系统事件日志中会记录一个错误事件,如下所示:
事件属性 | 说明 |
---|---|
日志名称 | 系统 |
Source | Microsoft-Windows-Kernel-IO |
日期 | 12/29/2015 2:55:05 PM |
事件 ID | 1205 |
任务类别 | 无 |
Level | 错误 |
关键字 | |
用户 | CONTOSO\user |
计算机 | user.domain.corp.contoso.com |
说明 | Windows 已配置为阻止旧 FS 筛选器。 筛选器名称:\Driver\sfilter |
如何检查旧驱动程序是否正在运行
若要确定哪些筛选器是旧 FS 筛选器驱动程序以及它们是否正在运行,可以执行以下步骤:
- 通过选择并按住(或右键单击)cmd.exe 图标,然后选择以管理员身份运行,打开提升的命令提示符。
- 类型:
fltmc filters
- 查找旧驱动程序,它们是具有<旧>帧值的驱动程序。
在此示例中,三个筛选器正在运行。 旧 FS 筛选器驱动程序(AVLegacy 和 EncryptionLegacy)用<旧>帧值标记。 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 筛选器驱动程序移植到使用筛选器管理器模型的微型筛选器驱动程序的信息,请参阅旧筛选器驱动程序移植指南。