如何修复Windows驱动StartService错误1275?驱动测试问题求助
解决Windows 10虚拟机中驱动启动错误1275的问题
我之前也碰到过一模一样的情况,错误1275本质是系统判定你的驱动签名不合法——哪怕开启了测试签名模式,也得满足测试签名的基本要求才行。咱们一步步来排查解决:
1. 核心问题:驱动未进行测试签名
开启testsigning只是允许系统加载带有测试签名的驱动,但完全未签名的驱动还是会被拒绝。你需要用WDK提供的工具给驱动添加测试签名:
- 首先打开WDK配套的命令提示符(比如「x64 Native Tools Command Prompt for VS 2022」,要选对应你驱动架构的版本)
- 如果还没有测试证书,先生成一个:
makecert -r -pe -ss PrivateCertStore -n CN=MyTestDriverCert MyTestDriverCert.cer - 把生成的
MyTestDriverCert.cer导入到虚拟机的「受信任的根证书颁发机构」中(双击证书,按向导完成导入) - 最后给驱动签名:
signtool sign /v /s PrivateCertStore /n "MyTestDriverCert" /t http://timestamp.digicert.com Sample.sys
2. 确认测试签名模式是否真正生效
有时候执行bcdedit /set testsigning on后,重启可能没生效:
- 重启虚拟机后,以管理员身份打开命令提示符,输入
bcdedit,查看testsigning项是否显示Yes - 如果是UEFI模式的虚拟机,还需要关闭Secure Boot:在VirtualBox的虚拟机设置→系统→主板中勾选「启用EFI」,重启虚拟机进入BIOS,找到Secure Boot选项并关闭
3. 检查驱动编译与安装命令的正确性
- 架构匹配:确保你编译的驱动架构和虚拟机系统一致(比如虚拟机是x64,就不能编译x86驱动)
- 路径有效性:
sc create里的binPath= z:\Sample.sys要确认z盘在虚拟机中是可访问的(比如共享文件夹是否正确挂载),并且Sample.sys的权限允许管理员读取 - 命令格式:
sc create的参数里,type= kernel和binPath=后面的空格是必须的,你的命令格式是对的,但可以尝试重新执行一次:
给路径加上引号避免路径中有空格的问题(哪怕现在没有,也可以养成习惯)sc delete sample sc create sample type= kernel binPath= "z:\Sample.sys" sc start sample
4. 补充:你的驱动代码本身是没问题的
贴一下你提供的代码,确认逻辑上没有问题:
#include <ntddk.h> void SampleUnload(_In_ PDRIVER_OBJECT DriverObject) { UNREFERENCED_PARAMETER(DriverObject); } extern "C" NTSTATUS DriverEntry(_In_ PDRIVER_OBJECT DriverObject, _In_ PUNICODE_STRING RegistryPath) { UNREFERENCED_PARAMETER(DriverObject); UNREFERENCED_PARAMETER(RegistryPath); DriverObject->DriverUnload = SampleUnload; return STATUS_SUCCESS; }
这段代码是最基础的内核驱动框架,没有语法或逻辑错误,问题肯定出在签名或系统设置环节。
内容的提问来源于stack exchange,提问作者Pall Fall




