Обратный вызов для проверки ошибок Windows не вызывается в 64-битных системах - PullRequest
6 голосов
/ 08 июня 2011

Некоторое время назад мы успешно перенесли наш драйвер на 64-битные системы.

Но не хватает одной вещи, которая не очень важна, но это была очень удобная функция отладки.

обратные вызовы, зарегистрированные в KeRegisterBugCheckReasonCallback, никогда не вызываются.Функция возвращает TRUE для успеха, но мой обратный вызов никогда не вызывается.Я также пробовал разные значения по причине параметра, но безуспешно.Попытка со старым KeRegisterBugCheckCallback также не удалась.

Что я делаю не так?

Я что-то пропустил в документации?

1 Ответ

1 голос
/ 23 июня 2011

Я обнаружил проблему.

Windows вызывает обратные вызовы только в том случае, если соответствующий KBUGCHECK_CALLBACK_RECORD выровнен с 8-байтовым адресом.

По какой-то причине мой был выровнен с 4-байтовыми адресами.

Облом, что KeRegisterBugCheckReasonCallback не проверяет это.

...