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