【问题标题】:Windows bug check callback not called on 64 bit systems在 64 位系统上未调用 Windows 错误检查回调
【发布时间】:2011-06-08 12:25:15
【问题描述】:

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

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

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

我做错了什么?

我是否遗漏了文档中的某些内容?

【问题讨论】:

  • 谷歌搜索似乎应该可行。 ¯(°_o)/¯ 我试过了。
  • 我没有找到任何特定于 x64 Windows 的资源,只是“旧”一次,在 x64 时间之前,或通用一次。而我的经验是,回调只是没有被调用。

标签: windows driver bsod


【解决方案1】:

我发现了问题。

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

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

KeRegisterBugCheckReasonCallback 不检查这个真是太可惜了。

【讨论】:

    猜你喜欢
    • 2019-03-08
    • 2018-10-01
    • 2018-06-06
    • 2017-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-30
    • 1970-01-01
    相关资源
    最近更新 更多