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 |