다음을 통해 공유


VSS_RESTOREMETHOD_ENUM 열거형(vswriter.h)

VSS_RESTOREMETHOD_ENUM 열거형은 기록기 메타데이터 문서를 통해 관리하는 모든 구성 요소의 모든 파일과 함께 사용할 기본 파일 복원 방법을 지정하기 위해 백업 시 기록기에서 사용됩니다.

restore 메서드는 기록기 전체이며 원래 복원 대상이라고도 하며 VSS_RT_ORIGINAL VSS_RESTORE_TARGET 값으로 표시됩니다.

Syntax

typedef enum VSS_RESTOREMETHOD_ENUM {
  VSS_RME_UNDEFINED = 0,
  VSS_RME_RESTORE_IF_NOT_THERE,
  VSS_RME_RESTORE_IF_CAN_REPLACE,
  VSS_RME_STOP_RESTORE_START,
  VSS_RME_RESTORE_TO_ALTERNATE_LOCATION,
  VSS_RME_RESTORE_AT_REBOOT,
  VSS_RME_RESTORE_AT_REBOOT_IF_CANNOT_REPLACE,
  VSS_RME_CUSTOM,
  VSS_RME_RESTORE_STOP_START
} ;

상수

 
VSS_RME_UNDEFINED
값: 0
복원 메서드가 정의되지 않았습니다.


이는 기록기 부분에 대한 오류를 나타냅니다.

이 값은 빠른 작성기에 지원되지 않습니다.
VSS_RME_RESTORE_IF_NOT_THERE
요청자는 의 버전이 없는 경우에만 선택한 구성 요소 또는 구성 요소 집합의 파일을 복원해야 합니다.
현재 디스크에 있는 파일입니다.


파일 복원을 위해 대체 위치 매핑이 정의되지 않는 한, 에서 관리하는 파일의 버전인 경우
선택한 구성 요소 또는 구성 요소 집합이 현재 디스크에 있으며 선택한 에서 관리하는 파일이 없습니다.
구성 요소 또는 구성 요소 집합을 복원해야 합니다.

파일의 대체 위치 매핑이 정의되고 파일 버전이 디스크에 있는 경우
원래 위치, 파일의 버전이 없는 경우에만 대체 위치에 파일을 기록해야 합니다.
대체 위치입니다.
VSS_RME_RESTORE_IF_CAN_REPLACE
요청자는 현재 디스크에 있는 파일을 덮어쓸 수 있는 경우에만 선택한 구성 요소 또는 구성 요소 집합의 파일을 복원해야 합니다.


파일 복원을 위해 대체 위치 매핑을 정의하지 않는 한 해당 파일의 버전이 있는 경우
디스크에 설정된 선택한 구성 요소 또는 구성 요소를 덮어쓸 수 없으며, 에서 관리하는 파일 중 어느 것도 덮어쓸 수 없습니다.
구성 요소 또는 구성 요소 집합을 복원해야 합니다.

파일의 대체 위치 매핑이 정의된 경우 파일을 대체 위치에 기록해야 합니다.
VSS_RME_STOP_RESTORE_START
요청자는 다음과 같이 복원 작업을 수행해야 합니다.


  1. PreRestore 이벤트를 보내고 모든 기록기에서 처리할 때까지 기다립니다.

  2. 서비스를 중지합니다.

  3. 파일을 원래 위치로 복원합니다.

  4. 서비스를 다시 시작합니다.

  5. PostRestore 이벤트를 보내고 모든 기록기에서 처리할 때까지 기다립니다.


중지할 서비스는 IVssCreateWriterMetadata::SetRestoreMethod 메서드를 호출할 때 기록기를 미리 지정합니다. 요청자는 IVssExamineWriterMetadata::GetRestoreMethod 메서드를 호출하여 서비스 이름을 가져올 수 있습니다.

기록기가 중지되는 서비스에서 호스트되는 경우 해당 작성기는 PostRestore 이벤트를 수신하지 않습니다. 서비스가 중지되고 다시 시작될 때 기록기 instance ID가 변경되기 때문입니다.
VSS_RME_RESTORE_TO_ALTERNATE_LOCATION
요청자는 선택한 구성 요소 또는 구성 요소 집합의 파일을 에 지정된 위치로 복원해야 합니다.
기록기 구성 요소 메타데이터 파일에 지정된 대체 위치 매핑입니다. (다음 항목 참조:
IVssCreateWriterMetadata::AddAlternateLocationMapping,
IVssComponent::GetAlternateLocationMapping,
IVssExamineWriterMetadata::GetAlternateLocationMapping,
IVssWMFiledesc::GetAlternateLocation.)

이 값은 빠른 작성기에 지원되지 않습니다.
VSS_RME_RESTORE_AT_REBOOT
요청자는 컴퓨터를 다시 시작한 후 선택한 구성 요소 또는 구성 요소 집합의 파일을 복원해야 합니다.


복원할 파일을 임시 위치에 복사해야 하며 요청자는 를 사용해야 합니다.
MoveFileEx
MOVEFILE_DELAY_UNTIL_REBOOT 플래그를 사용하여 해당 파일의 복원을 완료합니다.
컴퓨터를 다시 시작한 후 적절한 위치입니다.
VSS_RME_RESTORE_AT_REBOOT_IF_CANNOT_REPLACE
가능한 경우 요청자는 선택한 구성 요소 또는 구성 요소 집합의 파일을 올바른 파일로 복원해야 합니다.
위치가 즉시 표시됩니다.


디스크에서 선택한 구성 요소 또는 구성 요소 집합으로 관리되는 파일의 버전이 있는 경우
덮어쓸 수 없으므로 선택한 구성 요소 또는 구성 요소 집합에서 관리하는 모든 파일을 복원해야 합니다.
컴퓨터가 다시 시작되면 입니다.

이 경우 복원할 파일을 디스크의 임시 위치에 복사해야 하며 요청자는
MoveFileEx
MOVEFILE_DELAY_UNTIL_REBOOT 플래그를 사용하여 해당 파일의 복원을 완료합니다.
컴퓨터를 다시 시작한 후 적절한 위치입니다.
VSS_RME_CUSTOM
요청자는 사용자 지정 복원 방법을 사용하여 선택한 에 의해 관리되는 파일을 복원해야 합니다.
구성 요소 또는 구성 요소 집합입니다.


사용자 지정 복원은 지정된 기록기에 비공개인 파일 검색 API 함수 또는 프로토콜을 사용할 수 있습니다.
애플리케이션을 클릭합니다. 이러한 복원은 기록기 구성 요소 메타데이터 파일의 정보를 사용할 필요가 없습니다. (다음 항목 참조:
자세한 내용을 위한 사용자 지정 백업 및 복원
information.)

이 값은 빠른 작성기에 지원되지 않습니다.
VSS_RME_RESTORE_STOP_START
요청자는 다음과 같이 복원 작업을 수행해야 합니다.


  1. PreRestore 이벤트를 보내고 모든 기록기에서 처리할 때까지 기다립니다.

  2. 파일을 원래 위치로 복원합니다.

  3. PostRestore 이벤트를 보내고 모든 기록기에서 처리할 때까지 기다립니다.

  4. 서비스를 중지합니다.

  5. 서비스를 다시 시작합니다.


중지할 서비스는 IVssCreateWriterMetadata::SetRestoreMethod 메서드를 호출할 때 기록기에 의해 미리 지정됩니다. 요청자는 IVssExamineWriterMetadata::GetRestoreMethod 메서드를 호출하여 서비스 이름을 가져올 수 있습니다.

설명

기록기는 백업 중에 IVssCreateWriterMetadata::SetRestoreMethod 를 호출하여 메타데이터에 원하는 복원 방법을 지정하여 기록기 메타데이터 문서에서 복원 메서드를 설정합니다.

요청자는 IVssExamineWriterMetadata::GetRestoreMethod 를 호출하여 기록기의 요청된 복원 메서드를 검색하고 그에 따라 작동합니다.

restore 메서드는 지정된 기록기의 모든 구성 요소에 있는 모든 파일에 적용됩니다.

기록기가 IVssComponent::SetRestoreTarget사용하여 VSS_RT_ORIGINAL 이외의 VSS_RESTORE_TARGET 값을 설정하는 경우 복원 방법은 복원 시 구성 요소별로 재정의될 수 있습니다.

대체 위치 매핑이 정의되어 없는 VSS_RME_RESTORE_TO_ALTERNATE_LOCATION 복원 방법은 기록기 오류를 구성하며 요청자는 이를 보고해야 합니다.

복원 방법에 현재 디스크(VSS_RME_RESTORE_IF_NOT_THERE, VSS_RME_RESTORE_IF_CAN_REPLACE 또는 VSS_RME_RESTORE_AT_REBOOT_IF_CANNOT_REPLACE)에 있는 파일 상태검사 필요한 경우 파일 I/O 작업을 사용하여 전체 구성 요소를 복원한 후 실제로 복원을 진행할 수 있는지 확인해야 합니다.

이 작업을 수행하는 가장 안전한 방법은 복원 전에 CreateFile 을 사용하여 모든 대상 파일을 독점적으로(공유하지 않음) 여는 것입니다.

VSS_RME_RESTORE_IF_NOT_THERE 경우 CREATE_NEW 생성 처리 플래그도 설정해야 합니다.

열린 작업이 성공하면 복원이 진행될 수 있으며 CreateFile 에서 반환된 핸들을 사용하여 실제로 복원된 데이터를 디스크에 씁니다.

그렇지 않은 경우 메서드 또는 대체 위치 매핑 확인 및 사용 가능한 경우 또는 다음 재부팅 시 복원을 위해 준비된 구성 요소 파일에 따라 오류가 반환될 수 있습니다.

시스템 오버헤드로 인해 매우 큰 구성 요소(일부는 수천 개의 파일이 있을 수 있음)에 문제가 있을 수 있습니다.

이 경우 안정성이 떨어지더라도 사용 가능한 옵션은 다음을 수행하는 것입니다.

  1. 현재 디스크에 있는 모든 파일을 복사하고 임시 캐시로 복원합니다.
  2. 현재 디스크에 있는 파일을 백업된 파일(두 번째 임시 영역의 디스크 또는 백업 매체에 있을 수 있음)으로 바꾸려고 시도합니다.
  3. 파일을 복원하지 못한 경우 복원 작업을 종료하고 원래 파일을 임시 위치에서 다시 복사하고 다시 부팅 작업 시 대체 위치 매핑 또는 복원을 진행합니다.
VSS에서 파일 위치를 백업하고 복원하는 방법에 대한 자세한 내용은 기본이 아닌 백업 및 복원 위치를 참조하세요.

요구 사항

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

추가 정보

IVssBackupComponents::AddAlternativeLocationMapping

IVssComponent::GetAlternateLocationMapping

IVssCreateWriterMetadata::AddAlternateLocationMapping

IVssCreateWriterMetadata::SetRestoreMethod

IVssExamineWriterMetadata::GetAlternateLocationMapping

IVssExamineWriterMetadata::GetRestoreMethod

IVssWMFiledesc::GetAlternateLocation

VSS_WRITERRESTORE_ENUM