You need to enable JavaScript to run this app. Windows内核驱动报Failed to register callbacks(C0000022)如何解决
优惠活动
大模型
产品
解决方案
定价
更多

Windows内核驱动报Failed to register callbacks(C0000022)如何解决

报错成因

C0000022是Windows内核标准状态码STATUS_ACCESS_DENIED,你在注册进程对象回调时触发该错误,核心原因是新版Windows 10对敏感内核API的权限限制:

  • Windows 10 1709及后续版本对ObRegisterCallbacks接口增加了特权校验,只有带受保护进程轻量(PPL)属性的签名驱动,才有权限调用该接口注册对象回调,普通测试签名驱动默认无该权限。
  • 额外可能触发的原因:虚拟机开启了内核隔离(内存完整性)功能、安全软件拦截了驱动的回调注册请求、驱动文件放在用户桌面路径导致内核态访问权限不足、驱动目标编译版本与运行系统版本不匹配。

解决步骤

按优先级依次尝试以下操作:

  1. 关闭内核隔离与安全软件
    进入系统设置→Windows安全中心→设备安全性→内核隔离,关闭「内存完整性」开关,卸载或完全退出所有第三方安全软件,重启系统生效。
  2. 确认测试签名模式正常开启
    以管理员权限执行CMD命令bcdedit,查看输出中testsigning字段的值为Yes,如果为No,执行bcdedit /set testsigning on后重启系统。
  3. 调整驱动存储路径与服务配置
    不要将驱动放在桌面等用户目录,移动到C盘根目录下的文件夹(如C:\Drivers\),重新执行服务创建命令,注意路径加引号避免解析错误:
sc create protect type= kernel binPath= "C:\Drivers\ProcessProtectorDriver.sys"
sc start protect
  1. 适配高版本Windows的回调权限要求
    如果以上操作都无效,可以修改项目配置给驱动添加PPL属性,学习测试场景下也可改用Windows 10 1703及更早版本的虚拟机运行该驱动,旧版系统没有ObRegisterCallbacks的PPL权限校验。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 15:39:03