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.

Comentarios

Cuando se llama a KdRefreshDebuggerNotPresent , obliga al valor de KD_DEBUGGER_NOT_PRESENT a actualizarse 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 ha asociado o quitado 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 del kernel está presente.

KD_DEBUGGER_NOT_PRESENT pueden modificarse 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 Value
Plataforma de destino Universal
Encabezado wdm.h (incluya Wdm.h, Ntddk.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe

Consulte también

Determinar si un depurador está asociado

KD_DEBUGGER_ENABLED

KD_DEBUGGER_NOT_PRESENT