Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
不久前,我们已经成功地将我们的驱动程序移植到了 64 位系统。
但是缺少一件事,这不是很重要,但它是一个非常方便的调试功能。
使用 KeRegisterBugCheckReasonCallback 注册的回调永远不会被调用。该函数返回 TRUE 表示成功,但我的回调从未被调用。我还为参数原因尝试了不同的值,但没有成功。尝试使用较旧的 KeRegisterBugCheckCallback 也失败了。
我做错了什么?
我错过了文档中的某些内容吗?
我发现了问题。
Windows 仅在相应的 KBUGCHECK_CALLBACK_RECORD 与 8 字节地址对齐时才调用回调。
出于某种原因,我的位置与 4 字节地址对齐。
KeRegisterBugCheckReasonCallback 没有检查这一点真是太可惜了。