You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何修复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= kernelbinPath=后面的空格是必须的,你的命令格式是对的,但可以尝试重新执行一次:
    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

火山引擎 最新活动