KeRegisterNmiCallback, fonction (wdm.h)
La routine KeRegisterNmiCallback enregistre une routine à appeler chaque fois qu’une interruption non masquable (NMI) se produit.
Syntaxe
PVOID KeRegisterNmiCallback(
[in] PNMI_CALLBACK CallbackRoutine,
[in, optional] PVOID Context
);
Paramètres
[in] CallbackRoutine
Pointeur vers une fonction du formulaire :
BOOLEAN
XxxNmiCallback(
IN PVOID Context,
IN BOOLEAN Handled
);
[in, optional] Context
Spécifie la valeur à passer en tant que paramètre Context de XxxNmiCallback lorsqu’il est appelé.
Valeur retournée
En cas de réussite, KeRegisterNmiCallback retourne un pointeur opaque que l’appelant passe à KeDeregisterNmiCallback pour désinscrire le rappel. La routine retourne NULL si elle ne parvient pas à inscrire le rappel.
Remarques
Lorsqu’une interruption non masquable se produit, le système appelle chaque rappel inscrit dans l’ordre inverse de l’ordre dans lequel ils ont été inscrits. Pour le premier rappel, le système transmet FALSE comme paramètre Handled . Pour chaque rappel suivant, si un rappel précédent a retourné TRUE, le système transmet TRUE comme paramètre Handled ; sinon, il transmet FALSE. Si un rappel retourne la valeur TRUE, le système considère que l’interruption a été gérée. Sinon, le système appelle le gestionnaire par défaut de HAL pour l’interruption, ce qui provoque normalement un bogue du système case activée.
La routine de rappel doit pouvoir être exécutée à IRQL = HIGH_LEVEL.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Universal |
En-tête | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | IRQL <= APC_LEVEL (voir la section Notes) |
Règles de conformité DDI | HwStorPortProhibitedDDIs(storport), IrqlKeApcLte2(wdm) |