Freigeben über


KeRegisterNmiCallback-Funktion (wdm.h)

Die KeRegisterNmiCallback-Routine registriert eine Routine, die aufgerufen werden soll, wenn ein nicht maskierbarer Interrupt (NMI) auftritt.

Syntax

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

Parameter

[in] CallbackRoutine

Zeiger auf eine Funktion des Formulars:

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

[in, optional] Context

Gibt den Wert an, der als Context-Parameter von XxxNmiCallback übergeben werden soll, wenn er aufgerufen wird.

Rückgabewert

Bei Erfolg gibt KeRegisterNmiCallback einen undurchsichtigen Zeiger zurück, den der Aufrufer an KeDeregisterNmiCallback übergibt, um die Registrierung des Rückrufs aufzuheben. Die Routine gibt NULL zurück, wenn der Rückruf nicht registriert werden kann.

Hinweise

Wenn ein nicht maskierbarer Interrupt auftritt, ruft das System jeden registrierten Rückruf in umgekehrter Reihenfolge aus der Reihenfolge auf, in der sie registriert wurden. Beim ersten Rückruf übergibt das System FALSE als Handled-Parameter . Wenn für jeden nachfolgenden Rückruf true zurückgegeben wurde, übergibt das System TRUE als Handled-Parameter , andernfalls wird FALSE übergeben. Wenn ein Rückruf den Wert TRUE zurückgibt, betrachtet das System den Interrupt als behandelt. Andernfalls ruft das System den Standardhandler der HAL für den Interrupt auf, was normalerweise zur Fehlerüberprüfung des Systems führt.

Die Rückrufroutine muss unter IRQL = HIGH_LEVEL ausgeführt werden können.

Anforderungen

Anforderung Wert
Zielplattform Universell
Header wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL IRQL <= APC_LEVEL (siehe Abschnitt Hinweise)
DDI-Complianceregeln HwStorPortProhibitedDIs(storport), IrqlKeApcLte2(wdm)

Weitere Informationen

KeDeregisterNmiCallback