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

Win10 1709+VS2017开发WDM驱动启动失败(错误2)及依赖缺失求助

作为经常处理驱动开发问题的开发者,我来帮你拆解这个问题的核心原因和可行的解决办法:

先澄清一个关键误解:Dependency Walker的结果是误报

Dependency Walker是为用户态程序设计的工具,它无法正确识别内核驱动的依赖关系。那些显示“缺失”的sys/dll文件,其实是Windows内核自带的系统模块,根本不需要你手动下载——你完全可以忽略这个工具的结果,把注意力放在启动失败的真正原因上。

错误2的核心原因:系统找不到驱动文件

[SC] StartService FAILED 2 对应的系统错误是ERROR_FILE_NOT_FOUND,也就是系统找不到你指定的驱动文件。问题出在sc create命令的binpath参数上:

  • 你写的binpath= mydriver1.sys是相对路径,系统会默认到C:\Windows\System32目录下查找,而你的驱动文件显然不在那里。
  • 正确的做法是使用绝对路径,并且注意binpath=后面必须保留一个空格,路径如果包含空格的话要加引号。

比如你的驱动输出在C:\DriverProjects\MyDriver\x64\Debug目录下,命令应该写成:

sc create mydriver binpath= "C:\DriverProjects\MyDriver\x64\Debug\mydriver1.sys" type= kernel
额外需要注意的Win10驱动加载限制

Win10 1709版本默认启用了驱动强制签名,未签名的内核驱动是无法被系统加载的,这也是常见的启动失败原因,你需要做这两步:

  1. 开启测试模式:以管理员身份打开命令提示符,执行:
    bcdedit /set testsigning on
    
    执行后重启电脑,右下角会出现“测试模式”的水印,这时候系统允许加载测试签名的驱动。
  2. 给驱动添加测试签名:
    • 在VS2017的项目属性中,找到「链接器 -> 输入」,勾选「延迟签名」,并指定你的测试证书(如果没有证书,可以用VS自带的工具生成:打开Developer Command Prompt,执行makecert -r -pe -ss PrivateCertStore -n CN=YourName testcert.cer)。
    • 或者在编译后,用signtool给驱动签名:signtool sign /s PrivateCertStore /n YourName mydriver1.sys。
最后验证步骤
  1. 先删除之前创建的错误服务:
    sc delete mydriver
    
  2. 用正确的绝对路径重新创建服务,然后启动:
    sc create mydriver binpath= "C:\你的驱动绝对路径\mydriver1.sys" type= kernel
    sc start mydriver
    

如果还是启动失败,建议打开事件查看器(Win+X -> 事件查看器),查看「Windows日志 -> 系统」中的错误日志,里面会有更详细的失败原因,比如驱动本身的代码错误、平台不匹配(比如编译了32位驱动但系统是64位)等。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:34:57