Expondo e exibindo volumes copiados por sombra
Além de ser acessado por meio da interface IVssBackupComponents por meio do objeto de dispositivo de sua cópia, um solicitante pode disponibilizar uma cópia de sombra para outros processos como um dispositivo somente leitura montado.
Esse processo é conhecido como expor uma cópia de sombra e é executado usando o método IVssBackupComponents::ExposeSnapshot .
Uma cópia de sombra pode ser exposta como um volume local, atribuído a uma letra de unidade ou associado a uma pasta montada, ou como um compartilhamento de arquivos.
Para ilustrar, considere uma cópia de sombra feita de um volume no sistema exposedSys montado em F:\ em cuja raiz são os diretórios dirOne e dirTwo e o arquivo FileOne.
Expondo uma cópia de sombra localmente
Quando montado como um volume local, a raiz da cópia de sombra fica sempre visível no ponto de montagem (letra da unidade ou pasta montada) e todos os arquivos copiados por sombra ficam visíveis.
Se a cópia de sombra fosse exposta localmente por meio da pasta montada C:\ShadowOfF, você encontraria todos os arquivos presentes no disco montado em F:\ no momento da cópia de sombra disponível em C:\ShadowOfF. Examinar C:\ShadowOfF revelaria dois diretórios, dirOne e dirTwo, e um arquivo, fileOne, em C:\ShadowOfF.
Uma chamada para expor localmente a cópia de sombra pode ser:
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
);
Se a cópia de sombra tiver sido exposta localmente com êxito, wszExposed deverá conter a cadeia de caracteres larga "C:\ShadowOfF".
Posteriormente, a cópia de sombra pode ser desexposta chamando IVssBackupComponentsEx2::UnexposeSnapshot.
Somente cópias de sombra persistentes, ou seja, cópias de sombra criadas com VSS_CTX_NAS_ROLLBACK ou VSS_CTX_APP_ROLLBACK, podem ser expostas localmente.
Expondo uma cópia de sombra como um compartilhamento remoto
Como alternativa, você pode optar por fazer a cópia de sombra do disco montado em F:\ disponível como um compartilhamento de arquivos remoto e expõe apenas dados em dirTwo como o dirTwoOfF de compartilhamento de arquivo.
Nesse caso, os sistemas podem acessar a cópia de sombra de arquivos em F:\dirTwo mapeando \\exposedSys\dirTwoOfF como uma unidade de rede.
Uma chamada para implementar a exposição remota da cópia de sombra como um compartilhamento pode ser a seguinte:
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
);
Se a cópia de sombra tiver sido exposta remotamente com êxito, wszExposed deverá conter a cadeia de caracteres larga "dirTwoOfF".
Qualquer sistema atualmente mapeando o compartilhamento de rede de dirTwoOfF pode se desconectar dele, assim como pode se desconectar de qualquer compartilhamento comum.
Como exibir uma cópia de sombra
Uma cópia de sombra com superfície é aquela em que a cópia de sombra é conhecida pelo namespace do Mount Manager de um sistema.
Isso significa que você pode localizar essas cópias de sombra da mesma forma que localizaria qualquer outro volume disponível, mas ainda não montado, usando FindFirstVolume e FindNextVolume, por exemplo.
Claramente, então, cópias de sombra expostas também são cópias de sombra exibidas. No entanto, o inverso não é necessariamente verdadeiro.
Se uma cópia de sombra exposta localmente tiver sido desmontada ou um sistema optar por desconectar uma cópia de sombra exposta remotamente, essa cópia de sombra não será mais exposta. No entanto, desde que a cópia de sombra persistisse, os volumes seriam exibidos. Isso significa que eles podem ser montados como qualquer outro volume somente leitura.