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) |