6

しばらく前に、ドライバを 64 ビット システムに正常に移植しました。

これはあまり重要ではありませんが、非常に便利なデバッグ機能でした。

KeRegisterBugCheckReasonCallback に登録されたコールバックは呼び出されません。関数は成功すると TRUE を返しますが、コールバックが呼び出されません。また、パラメーター reason にさまざまな値を試しましたが、成功しませんでした。古い KeRegisterBugCheckCallback での試行も失敗しました。

私が間違っていることは何ですか?

ドキュメントで何かを見逃していませんか?

4

1 に答える 1

1

問題が見つかりました。

Windows は、対応する KBUGCHECK_CALLBACK_RECORD が 8 バイト アドレスにアラインされている場合にのみ、コールバックを呼び出します。

何らかの理由で、4 バイトのアドレスにアラインされた場所をマイニングします。

KeRegisterBugCheckReasonCallback がこれをチェックしないのは残念です。

于 2011-06-23T13:18:29.427 に答える