Функция KeRegisterBugCheckReasonCallback (wdm.h)

Функция 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_CALLBACK_REASON

KBUGCHECK_REASON_CALLBACK_RECORD

KeDeregisterBugCheckReasonCallback

KeInitializeCallbackRecord

KeRegisterBugCheckCallback