Предоставление и отображение теневых скопированных томов
Помимо доступа к интерфейсу IVssBackupComponents с помощью объекта устройства копии, инициатор запроса может сделать теневой копии доступной для других процессов в качестве подключенного устройства только для чтения.
Этот процесс называется предоставлением теневой копии и выполняется с помощью метода IVssBackupComponents::ExposeSnapshot .
Теневая копия может быть предоставлена в виде локального тома ( назначена буква диска или связана с подключенной папкой) или в качестве общей папки.
Для иллюстрации рассмотрим теневой копии тома в системе exposedSys, подключенной на F:\ в корне которого находятся каталоги 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
);
Если теневая копия была успешно предоставлена локально, wsz Exposed должна содержать строку расширенных символов "C:\ShadowOfF".
Позже теневая копия может быть удалена путем вызова IVssBackupComponentsEx2::UnexposeSnapshot.
Локально можно предоставлять только постоянные теневые копии, то есть теневые копии, созданные с помощью VSS_CTX_NAS_ROLLBACK или VSS_CTX_APP_ROLLBACK.
Предоставление теневой копии в качестве удаленной общей папки
Кроме того, можно сделать теневой копией диска, подключенного на F:\ доступны в качестве удаленной общей папки и предоставляют только данные в разделе dirTwo в качестве файлового ресурса dirTwoOfF.
В этом случае системы могут получить доступ к теневой копии файлов в папке F:\dirTwo, сопоставив \\exposedSys\dirTwoOfF как сетевой диск.
Вызов для реализации удаленного доступа к теневой копии в качестве общей папки может быть следующим:
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
);
Если теневая копия была успешно предоставлена удаленно, wsz Exposed должна содержать строку расширенных символов "dirTwoOfF".
Любая система, в настоящее время сопоставляет сетевую папку dirTwoOfF, может отключиться от нее так же, как и от любой обычной общей папки.
Отображение теневой копии
Теневая копия — это копия, в которой теневая копия известна пространству имен диспетчера подключений системы.
Это означает, что такие теневые копии можно найти так же, как и любой другой доступный, но еще не подключенный том, например с помощью FindFirstVolume и FindNextVolume.
Очевидно, что открытые теневые копии также являются теневыми копиями. Однако обратное не обязательно верно.
Если локально доступная теневая копия была отключена или система решила отключить удаленно доступную теневое копирование, эта теневая копия больше не будет предоставляться. Однако до тех пор, пока теневая копия сохраняется, тома будут отображаться. Это означает, что они могут быть подключены так же, как и любой другой том, доступный только для чтения.