Condividi tramite


Funzione KdRefreshDebuggerNotPresent (wdm.h)

La macro KdRefreshDebuggerNotPresent aggiorna il valore della variabile kernel globale KD_DEBUGGER_NOT_PRESENT .

Sintassi

BOOLEAN KdRefreshDebuggerNotPresent();

Valore restituito

KdRefreshDebuggerNotPresent restituisce il valore di KD_DEBUGGER_NOT_PRESENT.

Commenti

Quando viene chiamato KdRefreshDebuggerNotPresent , il valore di KD_DEBUGGER_NOT_PRESENT deve essere aggiornato per 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 questo sia successo, è 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 è presente il debugger del kernel.

KD_DEBUGGER_NOT_PRESENT può essere modificato da Windows o da qualsiasi altro 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(...);
}

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Intestazione wdm.h (include Wdm.h, Ntddk.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe

Vedi anche

Determinare se un debugger è collegato

KD_DEBUGGER_ENABLED

KD_DEBUGGER_NOT_PRESENT