다음을 통해 공유


SRSetRestorePointA 함수(srrestoreptapi.h)

시스템 복원에서 복원 지점을 만들 수 있도록 변경 집합의 시작과 끝을 지정합니다.

스크립트 가능한 동등한 항목은 CreateRestorePoint참조하세요.

통사론

BOOL SRSetRestorePointA(
  [in]  PRESTOREPOINTINFOA pRestorePtSpec,
  [out] PSTATEMGRSTATUS    pSMgrStatus
);

매개 변수

[in] pRestorePtSpec

복원 지점을 지정하는 RESTOREPOINTINFO 구조체에 대한 포인터입니다.

[out] pSMgrStatus

상태 정보를 수신하는 STATEMGRSTATUS 구조체에 대한 포인터입니다.

반환 값

함수가 성공하면 반환 값은 TRUE. pSMgrStatus의 llSequenceNumber 멤버는 복원 지점의 시퀀스 번호를 수신합니다.

함수가 실패하면 반환 값은 FALSE. pSMgrStatusnStatus 멤버는 오류 정보를 받습니다.

발언

NetworkService, LocalService 및 System이 SRSetRestorePoint사용하는 모든 프로세스로 다시 호출할 수 있도록 COM 보안을 초기화해야 합니다. SRSetRestorePoint 제대로 작동하려면 이 작업이 필요합니다. CoInitializeEx 및 CoInitializeSecurityCOM 호출을 설정하는 방법에 대한 자세한 내용은 시스템 복원사용하세요.

이 함수는 안전 모드에서 호출할 수 없습니다. 시스템 복원을 사용하지 않도록 설정한 경우에도 실패합니다(사용 안 함 참조).

이 함수를 호출하면 시스템 복원은 레지스트리 및 기타 시스템 데이터베이스의 전체 스냅샷을 만듭니다.

애플리케이션은 로드 시간 동적 연결을 사용하여 시스템 복원 함수를 호출해서는 안 됩니다. 대신 LoadLibrary 함수를 사용하여 SrClient.dll 로드하고 GetProcAddress 함수를 호출합니다.

RESTOREPOINTINFO 구조체의 dwEventType 멤버가 BEGIN_SYSTEM_CHANGE 설정된 SRSetRestorePoint 호출하여 시스템 변경 직전에 복원 지점을 만듭니다. 시스템 변경이 완료되면 dwEventType END_SYSTEM_CHANGE 설정하여 SRSetRestorePoint 호출합니다.

사용자가 애플리케이션 설치를 취소하면 설치 관리자가 설치를 시작했을 때 만든 복원 지점을 제거할 수 있습니다. 복원 지점을 제거하는 것은 선택 사항이며 사용자가 취소 중에 설치 관리자가 의도치 않게 변경한 내용을 복구하지 못하게 할 수 있습니다. 설치 관리자가 복원 지점을 제거하는 경우 SRRemoveRestorePoint 함수를 호출할 수 있습니다. 또는 dwRestorePointType CANCELLED_OPERATION 설정된 SRSetRestorePoint 호출하고, dwEventType END_SYSTEM_CHANGE 설정하고, llSequenceNumberSRSetRestorePoint대한 초기 호출에서 반환된 값으로 설정합니다.

SRSetRestorePoint중첩된 호출을 할 때는 주의해야 합니다. 자세한 내용은 SRSetRestorePoint대한 중첩 호출을 참조하세요.

Windows 8:

새 레지스트리 키를 사용하면 애플리케이션 개발자가 복원 지점 생성 빈도를 변경할 수 있습니다.

애플리케이션은 시스템에서 기존 키가 아니므로 이를 사용하기 위해 이 키를 만들어야 합니다. 키가 없는 경우 기본적으로 다음이 적용됩니다. 애플리케이션이 SRSetRestorePoint 함수를 호출하여 복원 지점을 만드는 경우 Windows는 지난 24시간 동안 복원 지점을 만든 경우 이 새 복원 지점 만들기를 건너뜁니다. 시스템 복원은 STATEMGRSTATUS 구조체의 IISequenceNumber 멤버를 이전에 만든 복원 지점의 시퀀스 번호로 설정하고 nStatus 멤버의 값을 ERROR_SUCCESS설정합니다.

SRSetRestorePoint 함수는 true반환합니다.

개발자는 HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore레지스트리 키 SystemRestorePointCreationFrequency DWORD 값을 만드는 애플리케이션을 작성할 수 있습니다. 이 레지스트리 키의 값은 복원 지점 생성 빈도를 변경할 수 있습니다.

애플리케이션이 SRSetRestorePoint 호출하여 복원 지점을 만들고 레지스트리 키 값이 0이면 시스템 복원에서 새 복원 지점 만들기를 건너뛰지 않습니다.

애플리케이션이 SRSetRestorePoint 호출하여 복원 지점을 만들고 레지스트리 키 값이 정수 N이면 이전 N분 동안 복원 지점이 만들어진 경우 시스템 복원에서 새 복원 지점 만들기를 건너뜁니다.

Windows 8:

Windows 8에서 실행되는 시스템 복원은 시스템 복원과 관련된 부팅 볼륨의 파일을 모니터링합니다. Windows 8에서 실행되는 시스템 복원에서 만든 부팅 볼륨의 스냅샷은 이후 이전 버전의 Windows에서 스냅샷을 노출하는 경우 삭제될 수 있습니다. 시스템 볼륨은 하나뿐이지만 다중 부팅 시스템의 각 운영 체제에 대해 하나의 부팅 볼륨이 있습니다.

개발자는 레지스트리 키 HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore DWORD 값을 만드는 애플리케이션을 작성할 수 있습니다. 이 레지스트리 키 값이 0이면 시스템 복원은 이전 버전의 Windows와 동일한 방식으로 부팅 볼륨의 스냅샷을 만듭니다. 이 값이 삭제되면 Windows 8에서 실행되는 시스템 복원은 시스템 복원에만 관련된 부팅 볼륨의 파일을 모니터링하는 스냅샷 만들기를 다시 시작합니다.

예제

예를 들어 시스템 복원사용하는 참조하세요.

메모

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

요구 사항

요구
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 지원되지 않는 항목
대상 플랫폼 Windows
헤더 srrestoreptapi.h
DLL SrClient.dll

참고 항목

SRRemoveRestorePoint