Método IVssBackupComponents::AddAlternativeLocationMapping (vsbackup.h)

Un solicitante usa el método AddAlternativeLocationMapping para indicar que se usó una asignación de ubicación alternativa para restaurar todos los miembros de un conjunto de archivos en un componente determinado.

Sintaxis

HRESULT AddAlternativeLocationMapping(
  [in] VSS_ID             writerId,
  [in] VSS_COMPONENT_TYPE componentType,
  [in] LPCWSTR            wszLogicalPath,
  [in] LPCWSTR            wszComponentName,
  [in] LPCWSTR            wszPath,
  [in] LPCWSTR            wszFilespec,
  [in] bool               bRecursive,
  [in] LPCWSTR            wszDestination
);

Parámetros

[in] writerId

Identificador único global (GUID) de la clase de escritor que exportó el componente.

[in] componentType

Tipo del componente. Los valores posibles de este parámetro se definen mediante la enumeración VSS_COMPONENT_TYPE .

[in] wszLogicalPath

Cadena de caracteres anchos terminada en NULL que contiene la ruta de acceso lógica al componente.

Para obtener más información, vea Ruta de acceso lógica de componentes.

La ruta de acceso lógica puede ser NULL.

No hay restricciones en los caracteres que pueden aparecer en una ruta lógica que no sea NULL .

[in] wszComponentName

Cadena de caracteres anchos terminada en NULL que contiene el nombre del componente.

No hay restricciones en los caracteres que pueden aparecer en una ruta lógica que no sea NULL .

[in] wszPath

Cadena de caracteres anchos terminada en NULL que contiene la ruta de acceso al directorio que contenía originalmente el archivo que se va a reubicar. Esta ruta de acceso puede ser local en el equipo de VSS o puede ser un directorio de recursos compartidos de archivos en un servidor de archivos remoto.

La ruta de acceso puede contener variables de entorno (por ejemplo, %SystemRoot%) pero no puede contener caracteres comodín. Se admiten rutas unc.

No hay ningún requisito de que la ruta de acceso termine con una barra diagonal inversa (""). Es hasta las aplicaciones que recuperan esta información para comprobar.

[in] wszFilespec

Cadena de caracteres anchos terminada en NULL que contiene la especificación de archivo original.

Una especificación de archivo no puede contener especificaciones de directorio (por ejemplo, sin barras diagonales inversas), pero puede contener ? y * caracteres comodín.

[in] bRecursive

Valor booleano que indica si la ruta de acceso especificada por el parámetro wszPath identifica solo un directorio o si indica una jerarquía de directorios que se recorrerá de forma recursiva. Este parámetro debe establecerse en true si la ruta de acceso se trata como una jerarquía de directorios que se recorrerá de forma recursiva, o false si no es así .

Para obtener información sobre el recorrido de carpetas montadas, vea Trabajar con carpetas montadas y puntos de reanálisis.

[in] wszDestination

Cadena de caracteres anchos terminada en NULL que contiene el nombre del directorio donde se reubicará el archivo. Esta ruta de acceso puede ser local en el equipo de VSS o puede ser un directorio de recursos compartidos de archivos en un servidor de archivos remoto. Se admiten rutas unc.

Valor devuelto

A continuación se muestran los códigos de retorno válidos para este método.

Valor Significado
S_OK
Se agregó correctamente la asignación de ubicación alternativa.
E_INVALIDARG
Uno de los valores de parámetro no es válido.
E_OUTOFMEMORY
El autor de la llamada no tiene memoria u otros recursos del sistema.
VSS_E_BAD_STATE
El objeto de componentes de copia de seguridad no se inicializa, se ha llamado a este método durante una operación de restauración o no se ha llamado a este método dentro de la secuencia correcta.
VSS_E_INVALID_XML_DOCUMENT
El documento XML no es válido. Compruebe el registro de eventos para obtener más información. Para obtener más información, vea Control de eventos y errores en VSS.
VSS_E_OBJECT_NOT_FOUND
El componente especificado no existe.
VSS_E_UNEXPECTED
error inesperado. El código de error se registra en el archivo de registro de errores. Para obtener más información, vea Control de eventos y errores en VSS.

Windows Server 2008, Windows Vista, Windows Server 2003 y Windows XP: Este valor no se admite hasta Windows Server 2008 R2 y Windows 7. E_UNEXPECTED se usa en su lugar.

Comentarios

Windows 7, Windows Server 2008 R2, Windows Vista, Windows Server 2008, Windows XP y Windows Server 2003: Los recursos compartidos de archivos remotos no se admiten hasta Windows 8 y Windows Server 2012.

Los parámetros writerId, componentType, wszLogicalPath y wszComponentName identifican un componente determinado y los parámetros wszPath, wszFilespec y bRecursive identifican el conjunto de archivos que pertenece a ese componente.

La combinación de ruta de acceso, especificación de archivo, y la marca de recursividad (wszPath, wszFilespec y bRecursive, respectivamente) proporcionadas a AddAlternativeLocationMapping para asignarse deben coincidir con la de uno de los conjuntos de archivos agregados a un componente mediante IVssCreateWriterMetadata::AddFilesToFileGroup, IVssCreateWriterMetadata::AddDatabaseFiles o IVssCreateWriterMetadata::AddDatabaseFiles.

Dado que AddAlternativeLocationMapping se usa para notificar a un escritor que se usó una ubicación alternativa para restaurar todos los archivos de un componente, no se debe llamar a para ningún componente o archivo de un componente que no tenga especificada una asignación de ubicación alternativa.

El valor de wszPath se asignará a wszDestination al restaurar; sin embargo, los nombres de archivo y los subdirectorios en la ruta de acceso original conservan sus mismos nombres.

Un uso típico de AddAlternativeLocationMapping durante la restauración podría ser el siguiente:

  1. Recupere los documentos de metadatos de escritor almacenados del medio de copia de seguridad y cargue esa información con IVssExamineWriterMetadata::LoadFromXML.
  2. Llame a IVssExamineWriterMetadata::GetAlternateLocationMapping para obtener una interfaz IVssWMFiledesc con la información de asignación y use IVssWMFiledesc::GetAlternateLocation para obtener la ubicación alternativa.
  3. Examine la información archivada para determinar heurísticamente a qué componente se debe aplicar esta asignación de ubicación alternativa.
  4. Llame a IVssBackupComponents::AddAlternativeLocationMapping para comunicar dónde se restauraron los archivos.
Siempre se debe restaurar un archivo en su asignación de ubicación alternativa si se cumple alguna de las siguientes condiciones:
  • El método de restauración (establecido en el momento de la copia de seguridad) se VSS_RME_RESTORE_TO_ALTERNATE_LOCATION.
  • Su destino de restauración se estableció (en el momento de la restauración) en VSS_RT_ALTERNATE.
En cualquier caso, si no se define ninguna asignación de ubicación alternativa válida, se trata de un error de escritor.

Un archivo se puede restaurar en una asignación de ubicación alternativa si se cumple alguna de las siguientes condiciones:

  • El método de restauración es VSS_RME_RESTORE_IF_NOT_THERE y una versión del archivo ya está presente en el disco.
  • El método restore es VSS_RME_RESTORE_IF_CAN_REPLACE y una versión del archivo está presente en el disco y no se puede reemplazar.
De nuevo, si no se define ninguna asignación de ubicación alternativa válida, se trata de un error de escritura.

Una asignación de ubicación alternativa solo se usa durante una operación de restauración y no debe confundirse con una ruta de acceso alternativa, que solo se usa durante una operación de copia de seguridad.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado vsbackup.h (incluya VsBackup.h, Vss.h, VsWriter.h)
Library VssApi.lib

Consulte también

IVssBackupComponents

IVssWMFiledesc::GetAlternateLocation

VSS_COMPONENT_TYPE