KdRefreshDebuggerNotPresent, fonction (wdm.h)
La macro KdRefreshDebuggerNotPresent actualise la valeur de la variable de noyau globale KD_DEBUGGER_NOT_PRESENT.
Syntaxe
BOOLEAN KdRefreshDebuggerNotPresent();
Valeur de retour
KdRefreshDebuggerNotPresent retourne la valeur de KD_DEBUGGER_NOT_PRESENT.
Remarques
Lorsque KdRefreshDebuggerNotPresent est appelé, il force la valeur de KD_DEBUGGER_NOT_PRESENT à mettre à jour pour refléter si un débogueur de noyau est actuellement attaché. Cette valeur mise à jour est également utilisée comme valeur de retour de cette routine.
Si un débogueur de noyau a été récemment attaché ou supprimé, la valeur de KD_DEBUGGER_NOT_PRESENT peut ne pas refléter le nouvel état. Si vous pensez que cela s’est produit, vous devez appeler KdRefreshDebuggerNotPresent pour actualiser la valeur de cette variable. Après cet appel, vous pouvez utiliser la valeur de KD_DEBUGGER_NOT_PRESENT ou la valeur de retour de KdRefreshDebuggerNotPresent pour déterminer si le débogueur du noyau est présent.
KD_DEBUGGER_NOT_PRESENT pouvez être modifié par Windows ou tout autre binaire en mode noyau. Par conséquent, il est possible que la valeur de retour la plus récente de KdRefreshDebuggerNotPresent ne correspond pas à la valeur actuelle de KD_DEBUGGER_NOT_PRESENT.
L’exemple suivant montre comment utiliser KdRefreshDebuggerNotPresent:
if (KdRefreshDebuggerNotPresent() == FALSE)
{
// A kernel debugger is active.
DbgPrint("A problem occurred\n");
DbgBreakPoint();
}
else
{
// No kernel debugger attached, or kernel debugging not enabled.
KeBugCheckEx(...);
}
Exigences
Exigence | Valeur |
---|---|
plateforme cible | Universel |
d’en-tête | wdm.h (include Wdm.h, Ntddk.h) |
bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |