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)

Voir aussi

KeDeregisterNmiCallback