Partager via


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

Voir aussi

Déterminer si un débogueur est attaché

KD_DEBUGGER_ENABLED

KD_DEBUGGER_NOT_PRESENT