Exponer y mostrar volúmenes copiados de sombras

Además de tener acceso a través de la interfaz IVssBackupComponents mediante el objeto de dispositivo de su copia, un solicitante puede hacer que una instantánea esté disponible para otros procesos como un dispositivo de solo lectura montado.

Este proceso se conoce como exponer una instantánea y se realiza mediante el método IVssBackupComponents::ExposeSnapshot .

Una instantánea se puede exponer como un volumen local (asignada una letra de unidad o asociada a una carpeta montada) o como un recurso compartido de archivos.

Para ilustrarlo, considere una instantánea hecha de un volumen en el sistema expuestoSys montado en F:\ en cuya raíz están los directorios dirOne y dirTwo, y el archivo FileOne.

Exponer una instantánea localmente

Cuando se monta como un volumen local, la raíz de la instantánea siempre está visible en el punto de montaje (letra de unidad o carpeta montada) y todos los archivos copiados en sombras están visibles.

Si la instantánea se expone localmente a través de la carpeta montada C:\ShadowOfF, encontrará todos los archivos presentes en el disco montado en F:\ en el momento de la instantánea disponible en C:\ShadowOfF. Al examinar C:\ShadowOfF se revelarían dos directorios, dirOne y dirTwo, y un archivo, fileOne, en C:\ShadowOfF.

Una llamada a exponer localmente la instantánea podría 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
       );

Si la instantánea se ha expuesto correctamente localmente, wszExposed debe contener la cadena de caracteres anchos "C:\ShadowOfF".

La instantánea se puede anular posteriormente llamando a IVssBackupComponentsEx2::UnexposeSnapshot.

Solo las instantáneas persistentes (es decir, las instantáneas creadas con VSS_CTX_NAS_ROLLBACK o VSS_CTX_APP_ROLLBACK) se pueden exponer localmente.

Exponer una instantánea como un recurso compartido remoto

Como alternativa, puede optar por hacer la instantánea del disco montado en F:\ disponible como recurso compartido de archivos remoto y expone solo los datos de dirTwo como el recurso compartido de archivos dirTwoOfF.

En este caso, los sistemas podrían acceder a la instantánea de archivos en F:\dirTwo mediante la asignación \\exposedSys\dirTwoOfF como una unidad de red.

Una llamada para implementar la exposición remota de la instantánea como un recurso compartido podría ser la siguiente:

  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
       );

Si la instantánea se expone correctamente de forma remota, wszExposed debe contener la cadena de caracteres anchos "dirTwoOfF".

Cualquier sistema que asigne actualmente el recurso compartido de red de dirTwoOfF podría desconectarse de él, como podría desconectarse de cualquier recurso compartido normal.

Exponer una instantánea

Una instantánea expuesta es una en la que se conoce la instantánea en el espacio de nombres del Administrador de montaje de un sistema.

Esto significa que puede localizar estas instantáneas igual que buscaría cualquier otro volumen disponible, pero aún no montado, mediante FindFirstVolume y FindNextVolume, por ejemplo.

Claramente, a continuación, las instantáneas expuestas también son instantáneas expuestas. Sin embargo, la inversa no es necesariamente cierta.

Si se desmontó una instantánea expuesta localmente o un sistema decidió desconectar una instantánea expuesta de forma remota, esa instantánea ya no se expondría. Sin embargo, siempre que la instantánea persista, se mostrarían los volúmenes. Esto significa que podrían montarse como cualquier otro volumen de solo lectura.