IVssComponent::GetDifferencedFile 메서드(vswriter.h)

GetDifferencedFile 메서드는 파일 집합(지정된 파일 또는 파일)에 대한 정보를 반환하여 증분 또는 차등 백업에 참여하거나 서로 다른 파일로 복원합니다. 즉, 파일과 연결된 백업 및 복원은 전체 파일이 부분 파일을 사용하는 것이 아니라 백업 미디어와 복사되는 것처럼 구현되어야 합니다.

이 메서드는 백업 또는 복원 작업 중에 요청자 또는 기록기에서 호출할 수 있습니다.

구문

HRESULT GetDifferencedFile(
  [in]  UINT     iDifferencedFile,
  [out] BSTR     *pbstrPath,
  [out] BSTR     *pbstrFilespec,
  [out] BOOL     *pbRecursive,
  [out] BSTR     *pbstrLsnString,
  [out] FILETIME *pftLastModifyTime
);

매개 변수

[in] iDifferencedFile

검사할 차이 파일의 인덱스 번호입니다. 이 매개 변수의 값은 0에서 n-1까지의 정수입니다. 여기서 n 은 지정된 구성 요소와 연결된 총 차이 파일 수(구성 요소 집합을 정의하는 경우 해당 하위 구성 요소)입니다. n 값은 IVssComponent::GetDifferencedFilesCount에서 반환됩니다.

[out] pbstrPath

구분된 파일의 경로가 포함된 문자열을 수신하는 호출자가 할당한 변수의 주소입니다.

이 메서드의 사용자는 이 경로가 백슬래시(\)로 끝나는지 여부를 확인하기 위해 검사 합니다.

[out] pbstrFilespec

구분된 파일의 파일 사양을 포함하는 문자열을 수신하는 호출자 할당 변수의 주소입니다.

[out] pbRecursive

차이점이 있는 파일에 대한 파일 사양을 재귀적으로 해석해야 하는지 여부를 지정하는 부울을 수신하는 호출자 할당 변수의 주소입니다. TRUE이면 전체 디렉터리 계층 구조에서 파일 사양 pbstrFilespec과 일치하는 파일을 검색하여 증분 또는 차등 백업 중에 서로 다른 파일로 처리할 파일을 찾아야 합니다. FALSE인 경우 루트 디렉터리만 검색해야 합니다.

[out] pbstrLsnString

다음에 사용하도록 예약됩니다.

[out] pftLastModifyTime

FILETIME 구조로 표현된 차이 파일에 대한 마지막 수정 시간의 기록기 사양을 수신하는 호출자 할당 변수의 주소입니다.

반환 값

다음은 이 메서드에 대한 유효한 반환 코드입니다.

의미
S_OK
특성 값을 반환했습니다.
E_INVALIDARG
매개 변수 값 중 하나가 잘못되었습니다.
E_OUTOFMEMORY
호출자가 메모리가 부족하거나 다른 시스템 리소스가 부족합니다.
VSS_E_OBJECT_NOT_FOUND
제공된 인덱스 에 해당하는 차이가 있는 파일을 찾을 수 없습니다.
VSS_E_INVALID_XML_DOCUMENT
XML 문서가 잘못되었습니다. 자세한 내용은 이벤트 로그를 확인합니다. 자세한 내용은 VSS에서 이벤트 및 오류 처리를 참조하세요.

설명

GetDifferencedFile 은 백업 또는 복원 작업 중에 요청자 또는 기록기에서 호출할 수 있습니다.

GetDifferencedFile 호출에 성공하면 호출자는 SysFreeString 함수를 호출하여 pbstrPathpbstrFilespec 매개 변수에 반환되는 문자열을 해제합니다.

기록기는 파일의 실제 백업 전에 언제든지 IVssComponent::AddDifferencedFilesByLastModifyTime 에 대한 호출로 차이점이 있는 파일을 나타낼 수 있으므로 일반적으로 PostSnapshot 이벤트(CVssWriter::OnPostSnapshot)를 처리하는 동안 백업 중에 GetDifferencedFileIVssBackupComponents::D oSnapshotSet 이 성공적으로 반환되기 전에 유용하게 호출되지 않습니다.

GetDifferencedFile에서 반환된 타임스탬프는 반환된 경로(pbstrPath) 및 파일 사양(pbstrFilespec)과 일치하는 모든 파일에 적용됩니다.

GetDifferencedFile(pftLastModifyTime)에서 반환된 타임스탬프 값이 0이 아닌 경우 요청자는 자체 레코드 및 파일 시스템 정보에 관계없이 이 값을 준수하고 이를 사용하여 차이 있는 파일을 차등 백업 또는 증분 백업에 포함할지 여부를 결정해야 합니다.

GetDifferencedFile에서 반환된 타임스탬프가 0이면 요청자는 파일 시스템 정보 및 자체 레코드를 사용하여 차이 있는 파일을 차등 백업 또는 증분 백업에 포함할지 여부를 결정할 수 있습니다.

파일 차이는 다음 중 하나일 수 있습니다.

이미 구성 요소의 일부인 파일 집합을 참조할 때 GetDifferencedFile을 호출할 때 사용되는 경로, 파일 사양 및 재귀 플래그(wszPath, wszFileSpecbRecursive)의 조합은 구성 요소에 이미 있는 파일 집합 또는 해당 하위 구성 요소 중 하나(구성 요소가 구성 요소 집합을 정의하는 경우)와 일치해야 합니다.

GetDifferencedFile이 서로 다른 새 파일을 반환하면 해당 파일의 경로(pbstrPath)가 구성 요소에 이미 있는 경로 또는 해당 하위 구성 요소 중 하나(구성 요소 집합을 정의하는 경우)와 일치하거나 아래에 있어야 합니다.

또한 GetDifferencedFile 에서 반환된 파일은 구성 요소 또는 기록기에서 아직 관리되지 않아야 합니다.

이러한 조건을 위반하는 경우 작성기 부분에서 오류가 발생하므로 보고해야 합니다.

IVssComponent 인터페이스에는 GetDifferencedFilesByLastModifyTime에서 반환된 새 파일에 대한 대체 위치 매핑을 변경하거나 추가할 수 있는 메서드가 없습니다. 대체 위치 매핑이 새 파일에 해당하는 경우 해당 대체 위치가 사용됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 vswriter.h(Vss.h, VsWriter.h 포함)
라이브러리 VssApi.lib

추가 정보

IVssComponent

IVssComponent::AddDifferencedFilesByLastModifyTime

IVssComponent::GetDifferencedFilesCount

증분 및 차등 백업