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 |