Función RegisterApplicationRecoveryCallback (winbase.h)
Registra la instancia activa de una aplicación para su recuperación.
Sintaxis
HRESULT RegisterApplicationRecoveryCallback(
[in] APPLICATION_RECOVERY_CALLBACK pRecoveyCallback,
[in, optional] PVOID pvParameter,
[in] DWORD dwPingInterval,
[in] DWORD dwFlags
);
Parámetros
[in] pRecoveyCallback
Puntero a la función de devolución de llamada de recuperación. Para obtener más información, consulte ApplicationRecoveryCallback.
[in, optional] pvParameter
Puntero a una variable que se va a pasar a la función de devolución de llamada. Puede ser NULL.
[in] dwPingInterval
Intervalo de ping de recuperación, en milisegundos. De forma predeterminada, el intervalo es de 5 segundos (RECOVERY_DEFAULT_PING_INTERVAL). El intervalo máximo es de 5 minutos. Si especifica cero, se usa el intervalo predeterminado.
Debe llamar a la función ApplicationRecoveryInProgress dentro del intervalo especificado para indicar a ARR que todavía está recuperando activamente; de lo contrario, WER finaliza la recuperación. Normalmente, se realiza la recuperación en un bucle con cada iteración que dure más que el intervalo de ping. Cada iteración realiza un bloque de trabajo de recuperación seguido de una llamada a ApplicationRecoveryInProgress. Puesto que también usa ApplicationRecoveryInProgress para determinar si el usuario quiere cancelar la recuperación, debe considerar un intervalo más pequeño, por lo que no realiza mucho trabajo innecesariamente.
[in] dwFlags
Reservado para uso futuro. Establecer en cero.
Valor devuelto
Esta función devuelve S_OK si se ejecuta correctamente o uno de los siguientes códigos de error.
Código devuelto | Descripción |
---|---|
|
Error interno; error en el registro. |
|
El intervalo de ping no puede ser superior a cinco minutos. |
Comentarios
Si la aplicación encuentra una excepción no controlada o deja de responder, Informe de errores de Windows (WER) llama a la devolución de llamada de recuperación especificada. Debe usar la devolución de llamada para guardar los datos y la información de estado. Puede usar la información si también llama a la función RegisterApplicationRestart para solicitar que WER reinicie la aplicación.
WER no llamará a la devolución de llamada de recuperación si un instalador quiere actualizar un componente de la aplicación. Para guardar los datos y la información de estado en el caso de actualización, debe controlar los mensajes WM_QUERYENDSESSION y WM_ENDSESSION . Para obtener más información, consulte cada mensaje. El tiempo de espera para responder a estos mensajes es de cinco segundos. La mayoría del tiempo de recuperación disponible se encuentra en el mensaje WM_CLOSE para el que tiene 30 segundos.
Una aplicación de consola que se puede actualizar usa la notificación CTRL_C_EVENT para iniciar la recuperación (para obtener más información, consulte la función de devolución de llamada HandlerRoutine ). El tiempo de espera del controlador que se va a completar es de 30 segundos.
Las aplicaciones deben considerar la posibilidad de guardar datos e información de estado en una base periódica para acortar la cantidad de tiempo necesario para la recuperación.
Requisitos
Cliente mínimo compatible | Windows Vista [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2008 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | winbase.h (incluye Windows.h) |
Library | Kernel32.lib |
Archivo DLL | Kernel32.dll |
Vea también
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de