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 |