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 |