Share via


SERVICE_FAILURE_ACTIONSA 구조체(winsvc.h)

서비스 컨트롤러가 서비스의 각 실패에 대해 수행해야 하는 작업을 나타냅니다. 서비스는 서비스 컨트롤러에 SERVICE_STOPPED 상태 보고하지 않고 종료될 때 실패한 것으로 간주됩니다.

실패 작업을 실행할 추가 상황을 구성하려면 SERVICE_FAILURE_ACTIONS_FLAG 참조하세요.

구문

typedef struct _SERVICE_FAILURE_ACTIONSA {
  DWORD     dwResetPeriod;
  LPSTR     lpRebootMsg;
  LPSTR     lpCommand;
  DWORD     cActions;
  SC_ACTION *lpsaActions;
} SERVICE_FAILURE_ACTIONSA, *LPSERVICE_FAILURE_ACTIONSA;

멤버

dwResetPeriod

오류가 없는 경우 실패 횟수를 0으로 다시 설정하는 시간(초)입니다. INFINITE를 지정하여 이 값을 다시 설정해서는 안 함을 나타냅니다.

lpRebootMsg

SC_ACTION_REBOOT 서비스 컨트롤러 작업에 대한 응답으로 다시 부팅하기 전에 서버 사용자에게 브로드캐스트할 메시지입니다.

이 값이 NULL이면 다시 부팅 메시지가 변경되지 않습니다. 값이 빈 문자열("")인 경우 다시 부팅 메시지가 삭제되고 메시지가 브로드캐스트되지 않습니다.

이 멤버는 다음 형식을 사용하여 지역화된 문자열을 지정할 수 있습니다.

@[path]dllname,-strID

식별자 strID 가 있는 문자열은 dllname에서 로드됩니다. 경로 는 선택 사항입니다. 자세한 내용은 RegLoadMUIString을 참조하세요.

Windows Server 2003 및 Windows XP: 지역화된 문자열은 Windows Vista까지 지원되지 않습니다.

lpCommand

SC_ACTION_RUN_COMMAND 서비스 컨트롤러 작업에 대한 응답으로 CreateProcess 함수를 실행할 프로세스의 명령줄입니다. 이 프로세스는 서비스와 동일한 계정으로 실행됩니다.

이 값이 NULL이면 명령이 변경되지 않습니다. 값이 빈 문자열("")이면 명령이 삭제되고 서비스가 실패할 때 프로그램이 실행되지 않습니다.

cActions

lpsaActions 배열의 요소 수입니다.

이 값이 0이지만 lpsaActions 가 NULL이 아니면 다시 설정 기간 및 오류 작업의 배열이 삭제됩니다.

lpsaActions

SC_ACTION 구조체의 배열에 대한 포인터입니다.

이 값이 NULL이면 cActionsdwResetPeriod 멤버가 무시됩니다.

설명

서비스 제어 관리자는 시스템이 부팅된 후 각 서비스가 실패한 횟수를 계산합니다. 서비스가 dwResetPeriod 초 동안 실패하지 않은 경우 개수가 0으로 다시 설정됩니다. 서비스가 N번째 시간 동안 실패하면 서비스 컨트롤러는 lpsaActions 배열의 요소 [N-1]에 지정된 작업을 수행합니다. NcActions보다 큰 경우 서비스 컨트롤러는 배열의 마지막 작업을 반복합니다.

참고

winsvc.h 헤더는 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 SERVICE_FAILURE_ACTIONS 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
머리글 winsvc.h(Windows.h 포함)

추가 정보

ChangeServiceConfig2

CreateProcess

QueryServiceConfig2

SC_ACTION

SERVICE_FAILURE_ACTIONS_FLAG