Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция KeRegisterBugCheckReasonCallback регистрирует подпрограмму обратного вызова, которая выполняется при возникновении ошибки в операционной системе.
Синтаксис
BOOLEAN KeRegisterBugCheckReasonCallback(
[out] PKBUGCHECK_REASON_CALLBACK_RECORD CallbackRecord,
[in] PKBUGCHECK_REASON_CALLBACK_ROUTINE CallbackRoutine,
[in] KBUGCHECK_CALLBACK_REASON Reason,
[in] PUCHAR Component
);
Параметры
[out] CallbackRecord
Указатель на структуру KBUGCHECK_REASON_CALLBACK_RECORD, которая была инициализирована вызовом подпрограммы KeInitializeCallbackRecord, описанной в макросах ядра Windows.
[in] CallbackRoutine
Указатель на подпрограмму обратного вызова типа KBUGCHECK_REASON_CALLBACK_ROUTINE для регистрации. Сведения о том, как реализовать эту подпрограмму обратного вызова, см. в записи подпрограммы обратного вызова проверки ошибок.
[in] Reason
Перечисление типа KBUGCHECK_CALLBACK_REASON, указывающее тип подпрограммы обратного вызова, на который callbackRoutine указывает.
[in] Component
Указатель на строку ANSI, завершающую значение NULL, которая идентифицирует вызывающий объект. Например, можно выбрать строку, описывающую драйвер устройства или содержащую имя устройства. Вы можете использовать расширение отладчика !bugdump для отображения данных аварийного дампа, связанных с этой строкой.
Возвращаемое значение
KeRegisterBugCheckReasonCallback возвращает TRUE, если подпрограмма обратного вызова успешно зарегистрирована; в противном случае возвращается FALSE.
Замечания
Драйверы могут использовать KeRegisterBugCheckReasonCallback для регистрации подпрограмм, выполняемых во время проверки системной ошибки.
Описание каждого типа обратного вызова см. в KBUGCHECK_CALLBACK_REASON.
Драйверы могут использовать процедуру KeDeregisterBugCheckReasonCallback для удаления регистрации обратного вызова ошибки. Любой драйвер, который можно выгрузить, должен удалить регистрацию всех его обратных вызовов в своей выгрузке подпрограммы.
Сведения о том, как реализовать эти подпрограммы обратного вызова, см. в статье Написание подпрограммы обратного вызова проверки ошибок.
Для отображения дополнительных данных дампа можно использовать метод IDebugDataSpaces3::ReadTagged** в расширении отладчика. Другим вариантом является отладка самой процедуры обратного вызова проверки ошибок. Дополнительные сведения об отладчиках и расширениях отладчика см. в отладки Windows.
Требования
| Требование | Ценность |
|---|---|
| минимальные поддерживаемые клиентские | Доступно в Windows XP с пакетом обновления 1 (SP1), Windows Server 2003 и более поздних версиях Windows. |
| целевая платформа | Всеобщий |
| заголовка | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
| библиотеки | NtosKrnl.lib |
| DLL | NtosKrnl.exe |
| IRQL | Любой уровень |
См. также
написание подпрограммы обратного вызова проверки ошибок
KBUGCHECK_REASON_CALLBACK_RECORD