内核 Driver: 注册回调失败 (status=C0000022)

Kernel Driver: Failed to register callbacks (status=C0000022)

我最近读了 Pavel Yosifovich 的书“Windows 内核编程”。 在第 9 章 - “Object 和注册表通知”中有一个名为“进程保护器 Driver”的项目,在我读完这本书后,我尝试从 0 创建这个项目并添加我的升级。 每次我尝试 运行 我的 driver 我都会遇到同样的错误:

Failed to register callbacks (status=C0000022)

我以为我的代码有问题所以我决定从书中复制代码并尝试..但是我得到了同样的错误。

我像这样在 VirtualBox Windows 10 32 位中加载 Driver(以管理员身份在 CMD 中):

sc create protect type= kernel binPath= C:\Users\Test\Desktop\ProcessProtectorDriver.sys

sc start protect

(左边是sysinternals的DbgView工具)

经过几次搜索后,我认为我的 Driver 需要签名,所以我尝试禁用 driver 签名验证,如下所示:

bcdedit /set testsigning on

项目简介:

但是我得到了同样的错误..

进程保护器Driver项目代码:

Driver: https://github.com/zodiacon/windowskernelprogrammingbook/tree/master/chapter09/ProcessProtect

客户:https://github.com/zodiacon/windowskernelprogrammingbook/tree/master/chapter09/Protect

我的错误是我将 /INTEGRITYCHECK 放在

Configuration Properties -> C/C++ -> Command Line

而不是在

Configuration Properties -> Linker -> Command Line

问题解决了。