我们已经成功将驱动程序移植到64位系统。
但缺少一件事,这不是很重要,但它是一个非常方便的调试功能。
永远不会调用使用KeRegisterBugCheckReasonCallback注册的回调。该函数返回TRUE表示成功,但从不调用我的回调函数。我也为参数原因尝试了不同的值但没有成功。尝试使用较旧的KeRegisterBugCheckCallback也失败了。
我做错了什么?
我是否遗漏了文档中的内容?
答案 0 :(得分:1)
我发现了问题。
如果对应的KBUGCHECK_CALLBACK_RECORD与8字节地址对齐,则Windows仅调用回调。
出于某种原因,我的位置与4字节地址对齐。
KeRegisterBugCheckReasonCallback不会检查这一点,这真是令人失望。