Compartilhar via


Função KeRegisterNmiCallback (wdm.h)

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

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.

Valor de retorno

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

Observações

Quando ocorre uma interrupção não desmascarável, o sistema chama cada retorno de chamada registrado em ordem inversa da ordem em que foram registrados. Para o primeiro retorno de chamada, o sistema passa FALSE como o parâmetro manipulado. Para cada retorno de chamada subsequente, se qualquer retorno de chamada anterior retornado TRUE, o sistema passa TRUE como o parâmetro manipulado, caso contrário, ele passa false. Se qualquer retorno de chamada retornar um valor de VERDADEIRO, 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 verifique bugs.

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

Requisitos

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

Consulte também

KeDeregisterNmiCallback