Поделиться через


Функция 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 (include Wdm.h, Ntddk.h)
библиотеки NtosKrnl.lib
DLL NtosKrnl.exe

См. также

определение подключения отладчика

KD_DEBUGGER_ENABLED

KD_DEBUGGER_NOT_PRESENT