KdRefreshDebuggerNotPresent-Funktion (wdm.h)
Das Makro KdRefreshDebuggerNotPresent aktualisiert den Wert der globalen Kernelvariable KD_DEBUGGER_NOT_PRESENT .
Syntax
BOOLEAN KdRefreshDebuggerNotPresent();
Rückgabewert
KdRefreshDebuggerNotPresent gibt den Wert von KD_DEBUGGER_NOT_PRESENT zurück.
Hinweise
Wenn KdRefreshDebuggerNotPresent aufgerufen wird, erzwingt es, dass der Wert von KD_DEBUGGER_NOT_PRESENT aktualisiert wird, um anzugeben, ob derzeit ein Kerneldebugger angefügt ist. Dieser aktualisierte Wert wird auch als Rückgabewert dieser Routine verwendet.
Wenn ein Kerneldebugger kürzlich angefügt oder entfernt wurde, spiegelt der Wert von KD_DEBUGGER_NOT_PRESENT möglicherweise nicht den neuen Zustand wider. Wenn Sie vermuten, dass dies geschehen ist, sollten Sie KdRefreshDebuggerNotPresent aufrufen, um den Wert dieser Variablen zu aktualisieren. Nach diesem Aufruf können Sie entweder den Wert von KD_DEBUGGER_NOT_PRESENT oder den Rückgabewert von KdRefreshDebuggerNotPresent verwenden, um zu bestimmen, ob der Kerneldebugger vorhanden ist.
KD_DEBUGGER_NOT_PRESENT können von Windows oder einer anderen Kernelmodus-Binärdatei geändert werden. Daher ist es möglich, dass der letzte Rückgabewert von KdRefreshDebuggerNotPresent nicht mit dem aktuellen Wert von KD_DEBUGGER_NOT_PRESENT übereinstimmt.
Das folgende Beispiel zeigt, wie KdRefreshDebuggerNotPresent verwendet wird:
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(...);
}
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
Header | wdm.h (include Wdm.h, Ntddk.h) |
Bibliothek | NtosKrnl.lib |
DLL | NtosKrnl.exe |