Partilhar via


Função KdRefreshDebuggerNotPresent (wdm.h)

A macro KdRefreshDebuggerNotPresent atualiza o valor da variável de kernel global KD_DEBUGGER_NOT_PRESENT.

Sintaxe

BOOLEAN KdRefreshDebuggerNotPresent();

Valor de retorno

KdRefreshDebuggerNotPresent retorna o valor de KD_DEBUGGER_NOT_PRESENT.

Observações

Quando KdRefreshDebuggerNotPresent é chamado, ele força o valor de KD_DEBUGGER_NOT_PRESENT a ser atualizado para refletir se um depurador de kernel está conectado no momento. Esse valor atualizado também é usado como o valor retornado dessa rotina.

Se um depurador de kernel tiver sido anexado ou removido recentemente, o valor de KD_DEBUGGER_NOT_PRESENT poderá não refletir o novo estado. Se você suspeitar que isso aconteceu, chame KdRefreshDebuggerNotPresent para atualizar o valor dessa variável. Após essa chamada, você pode usar o valor de KD_DEBUGGER_NOT_PRESENT ou o valor retornado de KdRefreshDebuggerNotPresent para determinar se o depurador de kernel está presente.

KD_DEBUGGER_NOT_PRESENT pode ser modificado pelo Windows ou por qualquer outro binário no modo kernel. Portanto, é possível que o valor retornado mais recente de KdRefreshDebuggerNotPresent não corresponda ao valor atual de KD_DEBUGGER_NOT_PRESENT.

O exemplo a seguir mostra como usar 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(...);
}

Requisitos

Requisito Valor
da Plataforma de Destino Universal
cabeçalho wdm.h (include Wdm.h, Ntddk.h)
biblioteca NtosKrnl.lib
de DLL NtosKrnl.exe

Consulte também

Determinando se um depurador está anexado

KD_DEBUGGER_ENABLED

KD_DEBUGGER_NOT_PRESENT