RegisterApplicationRecoveryCallback-Funktion (winbase.h)
Registriert die aktive instance einer Anwendung für die Wiederherstellung.
Syntax
HRESULT RegisterApplicationRecoveryCallback(
[in] APPLICATION_RECOVERY_CALLBACK pRecoveyCallback,
[in, optional] PVOID pvParameter,
[in] DWORD dwPingInterval,
[in] DWORD dwFlags
);
Parameter
[in] pRecoveyCallback
Ein Zeiger auf die Wiederherstellungsrückruffunktion. Weitere Informationen finden Sie unter ApplicationRecoveryCallback.
[in, optional] pvParameter
Ein Zeiger auf eine Variable, die an die Rückruffunktion übergeben werden soll. Kann NULL sein.
[in] dwPingInterval
Das Wiederherstellungs-Pingintervall in Millisekunden. Standardmäßig beträgt das Intervall 5 Sekunden (RECOVERY_DEFAULT_PING_INTERVAL). Das maximale Intervall beträgt 5 Minuten. Wenn Sie null angeben, wird das Standardintervall verwendet.
Sie müssen die ApplicationRecoveryInProgress-Funktion innerhalb des angegebenen Intervalls aufrufen, um arr anzugeben, dass Sie noch aktiv wiederhergestellt werden. Andernfalls beendet WER die Wiederherstellung. In der Regel führen Sie die Wiederherstellung in einer Schleife durch, wobei jede Iteration nicht länger als das Pingintervall dauert. Jede Iteration führt einen Wiederherstellungsblock aus, gefolgt von einem Aufruf von ApplicationRecoveryInProgress. Da Sie auch ApplicationRecoveryInProgress verwenden, um zu bestimmen, ob der Benutzer die Wiederherstellung abbrechen möchte, sollten Sie ein kleineres Intervall in Betracht ziehen, damit Sie nicht unnötig viel Arbeit ausführen.
[in] dwFlags
Für die zukünftige Verwendung reserviert. Auf NULL festlegen.
Rückgabewert
Diese Funktion gibt S_OK bei Erfolg oder einen der folgenden Fehlercodes zurück.
Rückgabecode | Beschreibung |
---|---|
|
Interner Fehler; Fehler bei der Registrierung. |
|
Das Pingintervall darf nicht mehr als fünf Minuten betragen. |
Hinweise
Wenn die Anwendung auf eine nicht behandelte Ausnahme stößt oder nicht mehr reagiert, ruft Windows-Fehlerberichterstattung (WER) den angegebenen Wiederherstellungsrückruf auf. Sie sollten den Rückruf verwenden, um Daten und Zustandsinformationen zu speichern. Sie können die Informationen verwenden, wenn Sie auch die RegisterApplicationRestart-Funktion aufrufen, um anzufordern, dass WER die Anwendung neu startet.
WER ruft Ihren Wiederherstellungsrückruf nicht auf, wenn ein Installationsprogramm eine Komponente Ihrer Anwendung aktualisieren möchte. Um Daten- und Zustandsinformationen im Updatefall zu speichern, sollten Sie die WM_QUERYENDSESSION und WM_ENDSESSION Nachrichten verarbeiten. Weitere Informationen finden Sie in den einzelnen Nachrichten. Das Timeout für die Antwort auf diese Nachrichten beträgt fünf Sekunden. Der Großteil der verfügbaren Wiederherstellungszeit befindet sich in der WM_CLOSE Meldung, für die Sie 30 Sekunden Zeit haben.
Eine Konsolenanwendung, die aktualisiert werden kann, verwendet die CTRL_C_EVENT-Benachrichtigung, um die Wiederherstellung zu initiieren (weitere Informationen finden Sie unter HandlerRoutine-Rückruffunktion ). Das Timeout für den Handler beträgt 30 Sekunden.
Anwendungen sollten erwägen, Daten und Zustandsinformationen regelmäßig zu speichern, um die für die Wiederherstellung benötigte Zeit zu verkürzen.
Anforderungen
Unterstützte Mindestversion (Client) | Windows Vista [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | winbase.h (Windows.h einschließen) |
Bibliothek | Kernel32.lib |
DLL | Kernel32.dll |