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(...);
}
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
Header | wdm.h (Wdm.h、Ntddk.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |