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

Quand KdRefreshDebuggerNotPresent est appelé, la valeur de KD_DEBUGGER_NOT_PRESENT doit être mise à jour pour indiquer 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 peuvent être modifiés 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 corresponde 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(...);
}

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête wdm.h (inclure 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