Share via


IVssProviderCreateSnapshotSet::CommitSnapshots 메서드(vsprov.h)

CommitSnapshots 메서드는 이 공급자의 모든 LUN을 신속하게 커밋합니다.

구문

HRESULT CommitSnapshots(
  [in] VSS_ID SnapshotSetId
);

매개 변수

[in] SnapshotSetId

섀도 복사본 집합을 식별하는 VSS_ID .

반환 값

반환 코드/값 설명
S_OK
0x00000000L
작업이 성공적으로 완료되었습니다.
E_OUTOFMEMORY
0x8007000EL
메모리 부족 또는 기타 시스템 리소스.
E_INVALIDARG
0x80070057L
매개 변수 값 중 하나가 잘못되었습니다.
VSS_E_OBJECT_NOT_FOUND
0x80042308L
SnapshotSetId 매개 변수는 찾을 수 없는 개체를 나타냅니다.
VSS_E_PROVIDER_VETO
0x80042306L
예기치 않은 공급자 오류가 발생했습니다. 공급자는 애플리케이션 이벤트 로그에 이 오류의 세부 정보를 기록해야 합니다.
 

다른 값이 반환되면 VSS는 이벤트 로그에 이벤트를 작성하고 오류를 VSS_E_UNEXPECTED_PROVIDER_ERROR 변환합니다.

설명

이 메서드는 섀도 복사본을 가져와야 하는 정의된 시간에 호출됩니다. 이 섀도 복사본 집합의 준비된 각 LUN에 대해 공급자는 특정 시점 LUN 콘텐츠를 유지하는 데 필요한 작업을 수행합니다. 이 메서드가 실행되는 동안 애플리케이션과 I/O 하위 시스템은 대부분 정지됩니다. 공급자는 이 메서드에 소요된 시간을 최소화해야 합니다. 일반적으로 이 메서드를 완료하는 데 1초 미만이 소요됩니다. 이 메서드는 플러시 및 보류 창 중에 호출되며, 10초 이내에 릴리스가 수신되지 않으면 VSS 커널 지원에서 플러시 및 보류를 취소하므로 VSS가 섀도 복사본 생성 프로세스에 실패합니다. 각 공급자가 이 호출을 완료하는 데 1~2초 이상 걸리는 경우 전체 섀도 복사본 만들기가 실패할 가능성이 높습니다.

I/O 시스템이 정지 상태이기 때문에 공급자는 시스템을 교착 상태에 빠뜨릴 수 있으므로 I/O를 시작하지 않도록 주의해야 합니다(예: 이 메서드에 의한 디버그 또는 추적 I/O 또는 이 메서드에서 수행된 호출). 메모리 매핑된 파일 및 페이징 I/O는 현재 고정되지 않습니다.

I/O 시스템은 이 메서드가 실행되는 동안에만 정지합니다. 마지막 공급자의 CommitSnapshots 메서드가 반환된 직후 VSS 서비스는 원본 LUN에서 보류 중인 모든 쓰기를 해제합니다. 공급자가 원본 및 섀도 복사본 LUN의 동기화를 수행하는 경우 공급자의 CommitSnapshots 메서드가 반환되기 전에 이 동기화를 완료해야 합니다. 비동기적으로 수행할 수 없습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 vsprov.h

추가 정보

IVssProviderCreateSnapshotSet