다음을 통해 공유


RmRestart 함수(restartmanager.h)

RmShutdown 함수에 의해 종료되고 RegisterApplicationRestart 함수를 사용하여 다시 시작되도록 등록된 애플리케이션 및 서비스를 다시 시작합니다. 이 함수는 RmStartSession 함수를 호출하여 다시 시작 관리자 세션을 시작하는 기본 설치 관리자만 호출할 수 있습니다.

구문

DWORD RmRestart(
  [in]           DWORD                    dwSessionHandle,
                 DWORD                    dwRestartFlags,
  [in, optional] RM_WRITE_STATUS_CALLBACK fnStatus
);

매개 변수

[in] dwSessionHandle

기존 다시 시작 관리자 세션에 대한 핸들입니다.

dwRestartFlags

예약되어 있습니다. 이 매개 변수는 0이어야 합니다.

[in, optional] fnStatus

RmRestart 함수가 실행되는 동안 상태 통신하는 데 사용되는 상태 메시지 콜백 함수에 대한 포인터입니다. NULL이면 상태 제공되지 않습니다.

반환 값

가장 최근에 받은 오류입니다. 함수는 Winerror.h에 정의된 시스템 오류 코드 중 하나를 반환할 수 있습니다.

의미
ERROR_REQUEST_OUT_OF_SEQUENCE
776
RmShutdown 함수를 호출하기 전에 유효한 세션 핸들을 사용하여 RmRestart 함수를 호출하면 이 오류 값이 반환됩니다.
ERROR_FAIL_RESTART
352
하나 이상의 애플리케이션을 다시 시작할 수 없습니다. RmGetList 함수에서 반환되는 RM_PROCESS_INFO 구조체에는 업데이트된 상태 정보가 포함되어 있습니다.
ERROR_SEM_TIMEOUT
121
Restart Manager 함수는 할당된 시간에 레지스트리 쓰기 뮤텍스를 가져올 수 없습니다. 다시 시작 관리자의 추가 사용이 실패할 가능성이 있으므로 시스템을 다시 시작하는 것이 좋습니다.
ERROR_CANCELLED
1223
이 오류 값은 작업 취소 요청이 성공하면 RmRestart 함수에서 반환됩니다.
ERROR_BAD_ARGUMENTS
160
하나 이상의 인수가 올바르지 않습니다. NULL 포인터 또는 0이 null이 아닌 값과 0이 아닌 값이 필요한 매개 변수에 전달된 경우 이 오류 값은 Restart Manager 함수에서 반환됩니다.
ERROR_WRITE_FAULT
29
작업을 레지스트리에 읽거나 쓸 수 없습니다.
ERROR_OUTOFMEMORY
14
메모리를 충분히 사용할 수 없어 다시 시작 관리자 작업을 완료할 수 없습니다.
ERROR_INVALID_HANDLE
6
제공된 핸들에 대한 다시 시작 관리자 세션이 없습니다.
ERROR_SUCCESS
0
함수가 성공하고 를 반환합니다.

설명

RmRestart 함수를 호출한 후 RmGetList 함수에서 반환하는 RM_PROCESS_INFO 구조체에는 업데이트된 상태 정보가 포함됩니다.

Restart Manager는 서로 다른 사용자 또는 터미널 세션을 구분하는 권한을 존중합니다. LocalSystem 권한이 있는 서비스로 실행되는 설치 관리자는 다른 사용자 또는 터미널 세션에서 애플리케이션을 종료하거나 다시 시작할 수 없습니다. 설치 관리자는 다른 세션에서 실행 중인 애플리케이션을 종료하고 다시 시작하는 사용자 지정 메서드를 구현해야 합니다. 한 가지 방법은 종료 및 다시 시작 작업을 수행하기 위해 다른 세션에서 새 설치 관리자 프로세스를 시작하는 것입니다.

콘솔 애플리케이션이 종료되고 다시 시작 관리자에 의해 다시 시작되면 애플리케이션이 새 콘솔에서 다시 시작됩니다.

RmShutdown 함수가 모든 애플리케이션 및 서비스를 종료할 수 없음을 나타내는 오류를 반환하는 경우에도 설치 관리자는 항상 RmRestart 함수를 사용하여 애플리케이션 및 서비스를 다시 시작해야 합니다.

RmRestart 함수는 상승된 권한으로 실행되는 애플리케이션을 다시 시작하지 않습니다. 애플리케이션이 다시 시작 관리자에 의해 종료된 경우에도 입니다.

RmRestart 함수는 현재 로그온한 사용자로 실행되지 않는 애플리케이션을 다시 시작하지 않습니다. 애플리케이션이 다시 시작 관리자에 의해 종료된 경우에도 입니다. 예를 들어 RmRestart 함수는 현재 로그온한 사용자로 실행되지 않는 실행 명령으로 시작된 애플리케이션을 다시 시작하지 않습니다. 이러한 애플리케이션은 수동으로 다시 시작해야 합니다.

요구 사항

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

추가 정보

RegisterApplicationRestart

RmCancelCurrentTask

RmShutdown