섀도 복사 볼륨 노출 및 표면화
요청자는 복사본의 디바이스 개체를 통해 IVssBackupComponents 인터페이스를 통해 액세스하는 것 외에도 다른 프로세스에서 탑재된 읽기 전용 디바이스로 섀도 복사본을 사용할 수 있도록 할 수 있습니다.
이 프로세스를 섀도 복사본 노출이라고 하며 IVssBackupComponents::ExposeSnapshot 메서드를 사용하여 수행됩니다.
섀도 복사본은 로컬 볼륨으로 노출되거나 드라이브 문자가 할당되거나 탑재된 폴더와 연결되거나 파일 공유로 노출될 수 있습니다.
설명하기 위해 F:\에 탑재된 exposedSys 시스템의 볼륨으로 만든 섀도 복사본을 고려합니다. 루트가 dirOne 및 dirTwo 디렉터리와 FileOne 파일인 에 있습니다.
로컬로 섀도 복사본 노출
로컬 볼륨으로 탑재되는 경우 섀도 복사본의 루트는 항상 탑재 지점(드라이브 문자 또는 탑재된 폴더)에 표시되며 모든 그림자 복사 파일이 표시됩니다.
섀도 복사본이 탑재된 폴더 C:\ShadowOfF를 통해 로컬로 노출된 경우 F:\에 탑재된 디스크에 있는 모든 파일을 찾을 수 있습니다. C:\ShadowOfF에서 사용할 수 있는 섀도 복사본의 시간에 C:\ShadowOfF를 검사하면 두 개의 디렉터리인 dirOne 및 dirTwo와 하나의 파일인 fileOne이 C:\ShadowOfF 아래에 표시됩니다.
섀도 복사본을 로컬로 노출하는 호출은 다음과 같습니다.
IVssBackupComponents *pReq;
VSS_ID snapID;
PWSTR wszExposed;
// .
// .
hr = pReg->ExposeSnapshot(
snapID, // VSS_ID SnapshotId,
NULL, // VSS_PWSZ wszPathFromRoot
VSS_VOLSNAP_ATTR_EXPOSED_LOCALLY, // LONG lAttributes
L"C:\ShadowOfF", // VSS_PWSZ wszExpose
LPWSTR &wszExposed, // VSS_PWSZ* pwszExposed
);
섀도 복사본이 로컬로 성공적으로 노출된 경우 wszExposed 에는 와이드 문자열 "C:\ShadowOfF"가 포함되어야 합니다.
나중에 IVssBackupComponentsEx2::UnexposeSnapshot을 호출하여 섀도 복사본을 노출 해제할 수 있습니다.
영구 섀도 복사본(즉, VSS_CTX_NAS_ROLLBACK 또는 VSS_CTX_APP_ROLLBACK 사용하여 만든 섀도 복사본)만 로컬로 노출할 수 있습니다.
섀도 복사본을 원격 공유로 노출
또는 F:\에 탑재된 디스크의 섀도 복사본을 만들도록 선택할 수 있습니다. 원격 파일 공유로 사용할 수 있으며 dirTwo의 데이터만 파일 공유 dirTwoOfF로 노출합니다.
이 경우 시스템은 \\exposedSys\dirTwoOfF를 네트워크 드라이브로 매핑하여 F:\dirTwo 아래 파일의 섀도 복사본에 액세스할 수 있습니다.
섀도 복사본을 공유로 노출하는 원격 구현 호출은 다음과 같습니다.
IVssBackupComponents *pReq;
VSS_ID snapID;
LPWSTR wszExposed;
// .
// .
hr = pReg->ExposeSnapshot(
snapID, // VSS_ID SnapshotId,
L"\dirTwo", // VSS_PWSZ wszPathFromRoot
VSS_VOLSNAP_ATTR_EXPOSED_REMOTELY, // LONG lAttributes
L"dirTwoOfF", // VSS_PWSZ wszExpose
LPWSTR &wszExposed, // VSS_PWSZ* pwszExposed
);
섀도 복사본이 원격으로 성공적으로 노출된 경우 wszExposed 에는 와이드 문자열 "dirTwoOfF"가 포함되어야 합니다.
현재 dirTwoOfF의 네트워크 공유를 매핑하는 모든 시스템은 일반 공유와 연결이 끊어질 수 있는 것처럼 연결이 끊어질 수 있습니다.
그림자 복사본 표시
표면화된 섀도 복사본은 시스템의 Mount Manager 네임스페이스에 그림자 복사본이 알려져 있는 복사본입니다.
예를 들어 FindFirstVolume 및 FindNextVolume을 사용하여 사용 가능하지만 아직 탑재되지 않은 다른 볼륨을 찾는 것처럼 이러한 섀도 복사본을 찾을 수 있습니다.
그러면 노출된 그림자 복사본도 그림자 복사본으로 표시됩니다. 그러나 그 반대의 경우도 마찬가지입니다.
로컬로 노출된 섀도 복사본이 분리되었거나 시스템이 원격으로 노출된 섀도 복사본의 연결을 끊기로 선택한 경우 해당 섀도 복사본은 더 이상 노출되지 않습니다. 그러나 섀도 복사본이 유지되는 한 볼륨이 표시됩니다. 즉, 다른 읽기 전용 볼륨처럼 탑재할 수 있습니다.