Funzione KdRefreshDebuggerNotPresent (wdm.h)
La macro KdRefreshDebuggerNotPresent aggiorna il valore della variabile del kernel globale KD_DEBUGGER_NOT_PRESENT.
Sintassi
BOOLEAN KdRefreshDebuggerNotPresent();
Valore restituito
KdRefreshDebuggerNotPresent restituisce il valore di KD_DEBUGGER_NOT_PRESENT.
Osservazioni
Quando viene chiamato KdRefreshDebuggerNotPresent, forza l'aggiornamento del valore di KD_DEBUGGER_NOT_PRESENT in modo da riflettere se un debugger del kernel è attualmente collegato. Questo valore aggiornato viene usato anche come valore restituito di questa routine.
Se un debugger del kernel è stato collegato o rimosso di recente, il valore di KD_DEBUGGER_NOT_PRESENT potrebbe non riflettere il nuovo stato. Se si sospetta che ciò si sia verificato, è necessario chiamare KdRefreshDebuggerNotPresent per aggiornare il valore di questa variabile. Dopo questa chiamata, è possibile usare il valore di KD_DEBUGGER_NOT_PRESENT o il valore restituito di KdRefreshDebuggerNotPresent per determinare se il debugger del kernel è presente.
KD_DEBUGGER_NOT_PRESENT può essere modificato da Windows o da qualsiasi altro file binario in modalità kernel. È pertanto possibile che il valore restituito più recente di KdRefreshDebuggerNotPresent non corrisponda al valore corrente di KD_DEBUGGER_NOT_PRESENT.
L'esempio seguente illustra come usare 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(...);
}
Fabbisogno
Requisito | Valore |
---|---|
piattaforma di destinazione | Universale |
intestazione | wdm.h (include Wdm.h, Ntddk.h) |
libreria | NtosKrnl.lib |
dll | NtosKrnl.exe |