SRSetRestorePoint 호출
애플리케이션은 설치, 제거 또는 업데이트와 같은 중요한 시스템 변경을 일으키기 전에 복원 지점을 만들 수 있습니다.
설치 관리자는 RESTOREPOINTINFO
구조체의 dwEventType
멤버가 BEGIN_SYSTEM_CHANGE
설정된 SRSetRestorePoint 함수를 호출하여 설치 전에 복원 지점을 만들어야 합니다. 시스템 복원에 설치가 완료되었음을 알리려면, dwEventType
를 END_SYSTEM_CHANGE
으로 설정하여 SRSetRestorePoint를 호출합니다.
사용자가 애플리케이션 설치를 취소하면 설치 관리자가 설치를 시작했을 때 만든 복원 지점을 제거할 수 있습니다. 복원 지점을 제거하는 것은 선택 사항이며 사용자가 취소 중에 설치 관리자가 의도치 않게 변경한 내용을 복구하지 못하게 할 수 있습니다. 설치 관리자가 복원 지점을 제거하는 경우 SRRemoveRestorePoint 함수를 호출하거나 dwRestorePointType
CANCELLED_OPERATION
설정된 SRSetRestorePoint 호출하고, dwEventType
END_SYSTEM_CHANGE
설정하며, llSequenceNumber
SRSetRestorePoint대한 초기 호출에서 반환된 값으로 설정할 수 있습니다.
Windows 8부터 개발자는 응용 프로그램을 작성하여 HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore
레지스트리 키 아래에 SystemRestorePointCreationFrequency DWORD 값을 생성할 수 있습니다. 이 레지스트리 키의 값은 복원 지점 생성 빈도를 변경할 수 있습니다. 기본적으로 이 키는 존재하지 않습니다.
애플리케이션이 SRSetRestorePoint 함수를 호출하여 복원 지점을 만들 때 키의 내용에 따라 다음 중 하나가 발생합니다.
키가 존재하지 않고(기본값) 지난 24시간 동안 복원 지점이 만들어진 경우 Windows는 이 새 복원 지점 만들기를 건너뜁니다. 시스템 복원은
STATEMGRSTATUS
구조체의IISequenceNumber
멤버를 이전에 만든 복원 지점의 시퀀스 번호로 설정하고nStatus
멤버의 값을ERROR_SUCCESS
설정합니다. SRSetRestorePoint 함수는TRUE
반환합니다.레지스트리 키 값이 0이면 시스템 복원에서 새 복원 지점 만들기를 건너뛰지 않습니다.
레지스트리 키 값이 정수 N이면 이전 N분 동안 복원 지점을 만든 경우 시스템 복원에서 새 복원 지점 만들기를 건너뜁니다.
Windows 8에서 실행되는 시스템 복원은 시스템 복원과 관련된 부팅 볼륨의 파일을 모니터링합니다. Windows 8에서 실행되는 시스템 복원에서 만든 부팅 볼륨의 스냅샷은 이후 이전 버전의 Windows에서 스냅샷을 노출하는 경우 삭제될 수 있습니다. 시스템 볼륨은 하나뿐이지만 다중 부팅 시스템의 각 운영 체제에 대해 하나의 부팅 볼륨이 있습니다.
개발자는 HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore
레지스트리 키 아래에 ScopeSnapshots DWORD 값을 만드는 애플리케이션을 작성할 수 있습니다. 이 레지스트리 키 값이 0이면 시스템 복원은 이전 버전의 Windows와 동일한 방식으로 부팅 볼륨의 스냅샷을 만듭니다. 이 값이 삭제되면 Windows 8에서 실행되는 시스템 복원은 시스템 복원에만 관련된 부팅 볼륨의 파일을 모니터링하는 스냅샷 만들기를 다시 시작합니다.
예를 들어 시스템 복원 사용하기을 참조하세요.