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 |