Compartir a través de


Función KdRefreshDebuggerNotPresent (wdm.h)

La macro KdRefreshDebuggerNotPresent actualiza el valor de la variable de kernel global KD_DEBUGGER_NOT_PRESENT.

Sintaxis

BOOLEAN KdRefreshDebuggerNotPresent();

Valor devuelto

KdRefreshDebuggerNotPresent devuelve el valor de KD_DEBUGGER_NOT_PRESENT.

Observaciones

Cuando se llama a KdRefreshDebuggerNotPresent, obliga a actualizar el valor de KD_DEBUGGER_NOT_PRESENT para reflejar si un depurador de kernel está asociado actualmente. Este valor actualizado también se usa como valor devuelto de esta rutina.

Si un depurador de kernel se adjuntó o quitó recientemente, es posible que el valor de KD_DEBUGGER_NOT_PRESENT no refleje el nuevo estado. Si sospecha que esto ha ocurrido, debe llamar a KdRefreshDebuggerNotPresent para actualizar el valor de esta variable. Después de esta llamada, puede usar el valor de KD_DEBUGGER_NOT_PRESENT o el valor devuelto de KdRefreshDebuggerNotPresent para determinar si el depurador de kernel está presente.

KD_DEBUGGER_NOT_PRESENT se pueden modificar mediante Windows o cualquier otro binario en modo kernel. Por lo tanto, es posible que el valor devuelto más reciente de KdRefreshDebuggerNotPresent no coincida con el valor actual de KD_DEBUGGER_NOT_PRESENT.

En el ejemplo siguiente se muestra cómo 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
de la plataforma de destino de Universal
encabezado de wdm.h (include Wdm.h, Ntddk.h)
biblioteca de NtosKrnl.lib
DLL de NtosKrnl.exe

Consulte también

Determinar si un depurador está asociado

KD_DEBUGGER_ENABLED

KD_DEBUGGER_NOT_PRESENT