Função KeRegisterNmiCallback (wdm.h)

A rotina KeRegisterNmiCallback registra uma rotina a ser chamada sempre que ocorre uma interrupção nãomaskável (NMI).

Sintaxe

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

Parâmetros

[in] CallbackRoutine

Ponteiro para uma função do formulário:

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

[in, optional] Context

Especifica o valor a ser passado como o parâmetro Context de XxxNmiCallback quando ele é chamado.

Retornar valor

Com êxito, KeRegisterNmiCallback retorna um ponteiro opaco que o chamador passa para KeDeregisterNmiCallback para desregistrar o retorno de chamada. A rotina retornará NULL se não for possível registrar o retorno de chamada.

Comentários

Quando ocorre uma interrupção nãomaskável, o sistema chama cada retorno de chamada registrado na ordem inversa da ordem em que foram registrados. Para o primeiro retorno de chamada, o sistema passa FALSE como o parâmetro Handled . Para cada retorno de chamada subsequente, se qualquer retorno de chamada anterior retornar TRUE, o sistema passará TRUE como o parâmetro Handled , caso contrário, ele passará FALSE. Se qualquer retorno de chamada retornar um valor TRUE, o sistema considerará que a interrupção foi tratada. Caso contrário, o sistema chamará o manipulador padrão do HAL para a interrupção, o que normalmente faz com que o sistema bug marcar.

A rotina de retorno de chamada deve ser capaz de ser executada em IRQL = HIGH_LEVEL.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL IRQL <= APC_LEVEL (consulte a seção Comentários)
Regras de conformidade de DDI HwStorPortProhibitedDIs(storport), IrqlKeApcLte2(wdm)

Confira também

KeDeregisterNmiCallback