RegisterApplicationRestart 함수(winbase.h)

다시 시작할 애플리케이션의 활성 instance 등록합니다.

구문

HRESULT RegisterApplicationRestart(
  [in, optional] PCWSTR pwzCommandline,
  [in]           DWORD  dwFlags
);

매개 변수

[in, optional] pwzCommandline

애플리케이션을 다시 시작할 때 명령줄 인수를 지정하는 유니코드 문자열에 대한 포인터입니다. 지정할 수 있는 명령줄의 최대 크기는 RESTART_MAX_CMD_LINE 문자입니다. 명령줄에 실행 파일의 이름을 포함하지 마세요. 이 함수는 자동으로 추가합니다.

이 매개 변수가 NULL 이거나 빈 문자열인 경우 이전에 등록된 명령줄이 제거됩니다. 인수에 공백이 포함된 경우 인수 주위에 따옴표를 사용합니다.

[in] dwFlags

이 매개 변수는 다음 값 중 0개 이상일 수 있습니다.

의미
RESTART_NO_CRASH
1
처리되지 않은 예외로 인해 종료되는 경우 프로세스를 다시 시작하지 마세요.
RESTART_NO_HANG
2
애플리케이션이 응답하지 않아 종료되는 경우 프로세스를 다시 시작하지 마세요.
RESTART_NO_PATCH
4
업데이트 설치로 인해 종료되는 경우 프로세스를 다시 시작하지 마세요.
RESTART_NO_REBOOT
8
업데이트의 결과로 컴퓨터가 다시 시작되는 경우 프로세스를 다시 시작하지 마세요.

반환 값

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

반환 코드 설명
E_FAIL
내부 오류입니다.
E_INVALIDARG
지정한 명령줄이 너무 깁니다.

설명

애플리케이션에서 처리되지 않은 예외가 발생하거나 응답하지 않게 되기 전에 다시 시작에 대한 초기 등록이 이뤄져야 합니다. 그런 다음 복구 콜백 내부에서 이 함수를 호출하여 명령줄을 업데이트할 수 있습니다.

업데이트되는 Windows 애플리케이션의 경우 이 함수를 호출할 수 있는 마지막 기회는 WM_QUERYENDSESSION 메시지를 처리하는 것입니다. 업데이트되는 콘솔 애플리케이션의 경우 설치 관리자가 애플리케이션을 종료하기 전에 등록이 발생해야 합니다(등록을 최신 상태로 유지해야 합니다. CTRL_C_EVENT 알림을 처리할 때 이 함수를 호출할 수 없음).

다시 시작에 등록하고 애플리케이션에 처리되지 않은 예외가 발생하거나 응답하지 않는 경우 사용자에게 애플리케이션을 다시 시작할 수 있는 기회가 제공됩니다. 사용자의 동의 없이 애플리케이션이 자동으로 다시 시작되지 않습니다. 그러나 애플리케이션이 업데이트되고 다시 시작해야 하는 경우 애플리케이션이 자동으로 다시 시작됩니다.

주기적 다시 시작을 방지하기 위해 시스템은 최소 60초 동안 실행된 경우에만 애플리케이션을 다시 시작합니다.

업데이트를 위해 컴퓨터를 다시 시작해야 할 때 애플리케이션을 다시 시작하려면 설치 관리자가 EWX_RESTARTAPPS 플래그 집합을 사용하여 ExitWindowsEx 함수를 호출하거나 SHUTDOWN_RESTARTAPPS 플래그가 설정된 InitiateShutdown 함수를 호출해야 합니다.

요구 사항

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

참고 항목

UnregisterApplicationRestart