KdRefreshDebuggerNotPresent 函式 (wdm.h)
KdRefreshDebuggerNotPresent 宏會重新整理全域核心變數KD_DEBUGGER_NOT_PRESENT的值。
Syntax
BOOLEAN KdRefreshDebuggerNotPresent();
傳回值
KdRefreshDebuggerNotPresent 會傳回 KD_DEBUGGER_NOT_PRESENT 的值。
備註
呼叫 KdRefreshDebuggerNotPresent 時,它會強制更新KD_DEBUGGER_NOT_PRESENT的值,以反映核心調試程式目前是否已附加。 這個更新的值也會當做這個例程的傳回值使用。
如果最近附加或移除核心調試程式,KD_DEBUGGER_NOT_PRESENT的值可能不會反映新的狀態。 如果您懷疑發生這種情況,您應該呼叫 KdRefreshDebuggerNotPresent 來重新整理此變數的值。 呼叫之後,您可以使用 KD_DEBUGGER_NOT_PRESENT 的值或 KdRefreshDebuggerNotPresent 的傳回值來判斷核心調試程式是否存在。
KD_DEBUGGER_NOT_PRESENT可由 Windows 或任何其他核心模式二進位檔修改。 因此, KdRefreshDebuggerNotPresent 的最新傳回值可能不符合KD_DEBUGGER_NOT_PRESENT的目前值。
下列範例示範如何使用 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(...);
}
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
標頭 | wdm.h (包括 Wdm.h、Ntddk.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |