内核 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
项目简介:
- 我将 /INTEGRITYCHECK 添加到配置属性 -> C/C++ -> 命令行(来自书中)
- 我在调试模式下尝试Driver
但是我得到了同样的错误..
进程保护器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
问题解决了。
我最近读了 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
项目简介:
- 我将 /INTEGRITYCHECK 添加到配置属性 -> C/C++ -> 命令行(来自书中)
- 我在调试模式下尝试Driver
但是我得到了同样的错误..
进程保护器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
问题解决了。