次の方法で共有


KdRefreshDebuggerNotPresent 関数 (wdm.h)

KdRefreshDebuggerNotPresent マクロは、KD_DEBUGGER_NOT_PRESENT グローバル カーネル変数の値を更新します。

構文

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(...);
}

必要条件

要件 価値
ターゲット プラットフォーム 万国
ヘッダー wdm.h (Wdm.h、Ntddk.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe

関連項目

デバッガーがアタッチされているかどうかを判断する

KD_DEBUGGER_ENABLED

KD_DEBUGGER_NOT_PRESENT