共用方式為


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

另請參閱

判斷調試程式是否已附加

KD_DEBUGGER_ENABLED

KD_DEBUGGER_NOT_PRESENT