You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

x64 Windows 10下Minifilter驱动注册失败问题求助

问题分析与解决:Minifilter驱动启动失败(STATUS_OBJECT_NAME_NOT_FOUND + SC错误2)

问题现象

  • 编译x64 Windows 10基础Minifilter驱动无异常,处于测试模式且驱动签名有效。
  • 使用sc create type= kernel binPath= "C:\...\driver.sys"注册驱动后,执行sc start driver返回:
    [SC] StartService FAILED 2:
    The system cannot find the file specified.
    
  • DebugView输出驱动加载时的错误:SimpleMinifilter: FltRegisterFilter failed with status 0xc0000034(对应STATUS_OBJECT_NAME_NOT_FOUND)。

核心原因

  1. 驱动依赖缺失:Minifilter驱动必须依赖系统的Filter Manager(fltmgr.sys)才能正常注册。未指定依赖项时,驱动启动时fltmgr.sys可能未加载,导致FltRegisterFilter无法找到Filter Manager的内核对象,返回STATUS_OBJECT_NAME_NOT_FOUND。
  2. 服务启动状态误报:由于DriverEntry返回了非成功状态,服务控制管理器(SCM)会判定驱动加载失败,进而返回错误2(找不到文件),但实际驱动已被加载并输出调试信息。

解决步骤

1. 重新创建服务并添加依赖项

删除原有服务后,重新创建时指定依赖fltmgr:

sc delete driver
sc create driver type= kernel binPath= "C:\完整路径\driver.sys" depend= fltmgr

注意:depend=后需保留空格,binPath的路径必须是完整的绝对路径,双引号内的反斜杠用单个\即可。

2. 验证FLT_REGISTRATION结构

确认你的FLT_REGISTRATION结构参数正确:

  • FLT_REGISTRATION_VERSION宏是当前Minifilter框架的正确版本,无需修改。
  • 若后续添加回调,确保Callbacks数组的终止项IRP_MJ_OPERATION_END正确。

3. 确认驱动文件路径与权限

  • 检查binPath中的路径是否完全正确,可将驱动文件复制到C:\Windows\System32\drivers目录下简化路径测试。
  • 确保驱动文件拥有系统权限:右键→属性→安全→添加SYSTEM用户并赋予完全控制权限。

4. 启动驱动并验证

执行启动命令:

sc start driver

此时DebugView应输出SimpleMinifilter: Loaded and filtering,说明驱动成功加载并注册。

内容的提问来源于stack exchange,提问作者Yash

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 07:53:14