Condividi tramite


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

Vedere anche

Determinare se un debugger è collegato

KD_DEBUGGER_ENABLED

KD_DEBUGGER_NOT_PRESENT