RegisterApplicationRecoveryCallback

アプリケーションのアクティブなインスタンスを復旧用に登録する。

RegisterApplicationRecoveryCallback pRecoveyCallback, pvParameter, dwPingInterval, dwFlags

pRecoveyCallback : [int] 復旧コールバック関数へのポインタ。詳細は ApplicationRecoveryCallback を参照。
pvParameter : [intptr] コールバック関数に渡される変数へのポインタ。NULL でもよい。
dwPingInterval : [int] 復旧 ping 間隔(ミリ秒単位)。既定では 5 秒(RECOVERY_DEFAULT_PING_INTERVAL)である。最大間隔は 5 分である。0 を指定した場合、既定の間隔が使用される。まだアクティブに復旧中であることを ARR に示すには、指定した間隔内に ApplicationRecoveryInProgress 関数を呼び出す必要がある。そうしないと WER は復旧を終了する。通常、復旧は各反復が ping 間隔を超えない長さで行うループで実行する。各反復は復旧作業の一区切りを行い、続いて ApplicationRecoveryInProgress を呼び出す。ApplicationRecoveryInProgress はユーザが復旧をキャンセルしたいかを判定するためにも使用されるため、不必要な作業を大量に行わないように、より小さな間隔を検討すべきである。
dwFlags : [int] 将来の使用のために予約されている。0 を設定する。

(プラグイン / モジュール : kernel32.dll)

解説

アプリケーションのアクティブなインスタンスを復旧用に登録する。

[戻り値]
この関数は成功時に S_OK を返すか、次のエラーコードのいずれかを返す。
(以下省略)

[備考]
アプリケーションが未処理例外に遭遇したり無応答になった場合、Windows Error Reporting (WER)
は指定された復旧コールバックを呼び出す。このコールバックはデータおよび状態情報を保存するために使用すべきである。WER
にアプリケーションの再起動を要求するために RegisterApplicationRestart
関数も呼び出す場合、この情報を利用できる。インストーラがアプリケーションのコンポーネントを更新しようとする場合、WER
は復旧コールバックを呼び出さない。更新の場合にデータおよび状態情報を保存するには、WM_QUERYENDSESSION および
WM_ENDSESSION メッセージを処理すべきである。詳細は各メッセージを参照。これらのメッセージへの応答のタイムアウトは 5
秒である。利用可能な復旧時間の大半は WM_CLOSE メッセージ(30
秒)にある。更新可能なコンソールアプリケーションは復旧を開始するために CTRL_C_EVENT 通知を使用する(詳細は
HandlerRoutine コールバック関数を参照)。ハンドラが完了するためのタイムアウトは 30
秒である。復旧に必要な時間を短縮するため、アプリケーションは定期的にデータおよび状態情報を保存することを検討すべきである。

情報

プラグイン / モジュールkernel32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の kernel32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_kernel32_gen2.hs