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

Подпрограмма KeRegisterNmiCallback регистрирует подпрограмму для вызова при возникновении немаскируемого прерывания (NMI).

Синтаксис

PVOID KeRegisterNmiCallback(
  [in]           PNMI_CALLBACK CallbackRoutine,
  [in, optional] PVOID         Context
);

Параметры

[in] CallbackRoutine

Указатель на функцию формы:

BOOLEAN
 XxxNmiCallback(
 IN PVOID Context,
  IN BOOLEAN Handled
 );

[in, optional] Context

Указывает значение, передаваемое в качестве параметра Contextэлемента XxxNmiCallback при его вызове.

Возвращаемое значение

При успешном выполнении KeRegisterNmiCallback возвращает непрозрачный указатель, который вызывающий объект передает в KeDeregisterNmiCallback для отмены регистрации обратного вызова. Подпрограмма возвращает значение NULL , если ей не удается зарегистрировать обратный вызов.

Комментарии

При возникновении немаскируемых прерываний система вызывает каждый зарегистрированный обратный вызов в порядке, обратном от порядка, в котором они были зарегистрированы. Для первого обратного вызова система передает значение FALSE в качестве параметра Handled . Для каждого последующего обратного вызова, если какой-либо предыдущий обратный вызов возвращал значение TRUE, система передает true в качестве параметра Handled , в противном случае — false. Если какой-либо обратный вызов возвращает значение TRUE, система считает, что прерывание было обработано. В противном случае система вызывает обработчик HAL по умолчанию для прерывания, что обычно вызывает ошибку системы проверка.

Подпрограмма обратного вызова должна выполняться в IRQL = HIGH_LEVEL.

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL IRQL <= APC_LEVEL (см. раздел "Примечания")
Правила соответствия DDI HwStorPortProhibitedDDIs(storport), IrqlKeApcLte2(wdm)

См. также раздел

KeDeregisterNmiCallback