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 |