Share via


RegisterApplicationRecoveryCallback 함수(winbase.h)

복구를 위해 애플리케이션의 활성 instance 등록합니다.

구문

HRESULT RegisterApplicationRecoveryCallback(
  [in]           APPLICATION_RECOVERY_CALLBACK pRecoveyCallback,
  [in, optional] PVOID                         pvParameter,
  [in]           DWORD                         dwPingInterval,
  [in]           DWORD                         dwFlags
);

매개 변수

[in] pRecoveyCallback

복구 콜백 함수에 대한 포인터입니다. 자세한 내용은 ApplicationRecoveryCallback을 참조하세요.

[in, optional] pvParameter

콜백 함수에 전달할 변수에 대한 포인터입니다. NULL일 수 있습니다.

[in] dwPingInterval

복구 ping 간격(밀리초)입니다. 기본적으로 간격은 5초(RECOVERY_DEFAULT_PING_INTERVAL)입니다. 최대 간격은 5분입니다. 0을 지정하면 기본 간격이 사용됩니다.

지정된 간격 내에 ApplicationRecoveryInProgress 함수를 호출하여 ARR에 여전히 적극적으로 복구 중임을 나타내야 합니다. 그렇지 않으면 WER은 복구를 종료합니다. 일반적으로 각 반복이 ping 간격보다 오래 지속되지 않는 루프에서 복구를 수행합니다. 각 반복은 복구 작업 블록과 ApplicationRecoveryInProgress 호출을 수행합니다. 또한 ApplicationRecoveryInProgress 를 사용하여 사용자가 복구를 취소할지 여부를 결정하기 때문에 더 작은 간격을 고려해야 하므로 불필요하게 많은 작업을 수행하지 않습니다.

[in] dwFlags

다음에 사용하도록 예약됩니다. 0으로 설정됩니다.

반환 값

이 함수는 성공에 대한 S_OK 반환하거나 다음 오류 코드 중 하나를 반환합니다.

반환 코드 설명
E_FAIL
내부 오류; 등록에 실패했습니다.
E_INVALIDARG
ping 간격은 5분을 초과할 수 없습니다.

설명

애플리케이션에서 처리되지 않은 예외가 발생하거나 응답하지 않는 경우 WER(Windows 오류 보고)은 지정된 복구 콜백을 호출합니다. 콜백을 사용하여 데이터 및 상태 정보를 저장해야 합니다. RegisterApplicationRestart 함수를 호출하여 WER이 애플리케이션을 다시 시작하도록 요청하는 경우 이 정보를 사용할 수 있습니다.

설치 관리자가 애플리케이션의 구성 요소를 업데이트하려는 경우 WER은 복구 콜백을 호출하지 않습니다. 업데이트 사례에 데이터 및 상태 정보를 저장하려면 WM_QUERYENDSESSION 처리하고 메시지를WM_ENDSESSION 합니다. 자세한 내용은 각 메시지를 참조하세요. 이러한 메시지에 응답하기 위한 시간 제한은 5초입니다. 사용 가능한 복구 시간의 대부분은 30초가 있는 WM_CLOSE 메시지에 있습니다.

업데이트할 수 있는 콘솔 애플리케이션은 CTRL_C_EVENT 알림을 사용하여 복구를 시작합니다(자세한 내용은 HandlerRoutine 콜백 함수 참조). 처리기가 완료되는 시간 제한은 30초입니다.

애플리케이션은 복구에 필요한 시간을 단축하기 위해 주기적인 베이스에 데이터 및 상태 정보를 저장하는 것을 고려해야 합니다.

요구 사항

   
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 winbase.h(Windows.h 포함)
라이브러리 Kernel32.lib
DLL Kernel32.dll

참고 항목

ApplicationRecoveryCallback

ApplicationRecoveryInProgress

RegisterApplicationRestart

UnregisterApplicationRecoveryCallback