6

不久前,我们已经成功地将我们的驱动程序移植到了 64 位系统。

但是缺少一件事,这不是很重要,但它是一个非常方便的调试功能。

使用 KeRegisterBugCheckReasonCallback 注册的回调永远不会被调用。该函数返回 TRUE 表示成功,但我的回调从未被调用。我还为参数原因尝试了不同的值,但没有成功。尝试使用较旧的 KeRegisterBugCheckCallback 也失败了。

我做错了什么?

我错过了文档中的某些内容吗?

4

1 回答 1

1

我发现了问题。

Windows 仅在相应的 KBUGCHECK_CALLBACK_RECORD 与 8 字节地址对齐时才调用回调。

出于某种原因,我的位置与 4 字节地址对齐。

KeRegisterBugCheckReasonCallback 没有检查这一点真是太可惜了。

于 2011-06-23T13:18:29.427 回答