Share via


enumeración VSS_RESTOREMETHOD_ENUM (vswriter.h)

El escritor usa la enumeración VSS_RESTOREMETHOD_ENUM en tiempo de copia de seguridad para especificar a través de su documento de metadatos del escritor el método de restauración de archivos predeterminado que se usará con todos los archivos de todos los componentes que administra.

El método de restauración es de todo el sistema de escritura y también se conoce como el destino de restauración original y se indica mediante un valor de VSS_RESTORE_TARGET de VSS_RT_ORIGINAL.

Syntax

typedef enum VSS_RESTOREMETHOD_ENUM {
  VSS_RME_UNDEFINED = 0,
  VSS_RME_RESTORE_IF_NOT_THERE,
  VSS_RME_RESTORE_IF_CAN_REPLACE,
  VSS_RME_STOP_RESTORE_START,
  VSS_RME_RESTORE_TO_ALTERNATE_LOCATION,
  VSS_RME_RESTORE_AT_REBOOT,
  VSS_RME_RESTORE_AT_REBOOT_IF_CANNOT_REPLACE,
  VSS_RME_CUSTOM,
  VSS_RME_RESTORE_STOP_START
} ;

Constantes

 
VSS_RME_UNDEFINED
Valor: 0
No se define ningún método de restauración.


Esto indica un error por parte del escritor.

Este valor no se admite para escritores rápidos.
VSS_RME_RESTORE_IF_NOT_THERE
El solicitante debe restaurar los archivos de un componente o un conjunto de componentes seleccionados solo si no hay versiones de
esos archivos están actualmente en el disco.


A menos que se definan asignaciones de ubicación alternativas para la restauración de archivos, si una versión de cualquier archivo administrado por un
el componente o el conjunto de componentes seleccionados están actualmente en el disco, ninguno de los archivos administrados por el seleccionado
se debe restaurar el componente o el conjunto de componentes.

Si se define la asignación de ubicación alternativa de un archivo y una versión de los archivos está presente en el disco en el
ubicación original, los archivos deben escribirse en la ubicación alternativa solo si no existe ninguna versión del archivo en
la ubicación alternativa.
VSS_RME_RESTORE_IF_CAN_REPLACE
El solicitante debe restaurar los archivos de un componente o componente seleccionado establecido solo si se pueden sobrescribir los archivos actualmente en el disco.


A menos que se definan asignaciones de ubicación alternativas para la restauración de archivos, si hay una versión de cualquier archivo que
no se puede sobrescribir del componente o componente seleccionado establecido en el disco, ninguno de los archivos administrados por .
se debe restaurar el componente o el conjunto de componentes.

Si se define la asignación de ubicación alternativa de un archivo, los archivos se deben escribir en la ubicación alternativa.
VSS_RME_STOP_RESTORE_START
El solicitante debe realizar la operación de restauración de la siguiente manera:


  1. Envíe el evento PreRestore y espere a que todos los escritores lo procesen.

  2. Detenga el servicio.

  3. Restaure los archivos en sus ubicaciones originales.

  4. Reinicie el servicio.

  5. Envíe el evento PostRestore y espere a que todos los escritores lo procesen.


El servicio que se va a detener se especifica de antemano al escritor cuando llama al método IVssCreateWriterMetadata::SetRestoreMethod . El solicitante puede obtener el nombre del servicio llamando al método IVssExamineWriterMetadata::GetRestoreMethod .

Tenga en cuenta que si el escritor está hospedado en el servicio que se está deteniendo, ese escritor no recibirá el evento PostRestore , ya que el identificador de instancia del escritor cambia cuando se detiene y se reinicia el servicio.
VSS_RME_RESTORE_TO_ALTERNATE_LOCATION
El solicitante debe restaurar los archivos del componente o componente seleccionado establecido en la ubicación especificada por .
asignación de ubicación alternativa especificada en el archivo de metadatos del componente de escritura. (Consulte
IVssCreateWriterMetadata::AddAlternateLocationMapping,
IVssComponent::GetAlternateLocationMapping,
IVssExamineWriterMetadata::GetAlternateLocationMapping,
e IVssWMFiledesc::GetAlternateLocation.

Este valor no se admite para escritores rápidos.
VSS_RME_RESTORE_AT_REBOOT
El solicitante debe restaurar los archivos de un componente o componente seleccionado establecido después de reiniciar el equipo.


Los archivos que se van a restaurar deben copiarse en una ubicación temporal y el solicitante debe usar
MoveFileEx con
MOVEFILE_DELAY_UNTIL_REBOOT marca para completar la restauración de estos archivos en su
ubicación adecuada después de reiniciar el equipo.
VSS_RME_RESTORE_AT_REBOOT_IF_CANNOT_REPLACE
Si es posible, el solicitante debe restaurar los archivos del componente o componente seleccionado establecido en su valor correcto.
ubicación inmediatamente.


Si hay versiones de cualquiera de los archivos administrados por el componente o componente seleccionado establecido en el disco que
no se puede sobrescribir, se deben restaurar todos los archivos administrados por el componente o conjunto de componentes seleccionado.
después de reiniciar el equipo.

En este caso, los archivos que se van a restaurar deben copiarse en una ubicación temporal en el disco y el solicitante debe
usar MoveFileEx con
MOVEFILE_DELAY_UNTIL_REBOOT marca para completar la restauración de estos archivos en su
ubicación adecuada después de reiniciar el equipo.
VSS_RME_CUSTOM
El solicitante debe usar un método de restauración personalizado para restaurar los archivos administrados por el seleccionado.
componente o conjunto de componentes.


Una restauración personalizada puede usar funciones o protocolos de API de recuperación de archivos que son privados para un escritor determinado.
aplicación Aha!. Esta restauración no necesita usar la información del archivo de metadatos del componente de escritura. (Consulte
Copias de seguridad y restauraciones personalizadas para más
information.)

Este valor no se admite para escritores rápidos.
VSS_RME_RESTORE_STOP_START
El solicitante debe realizar la operación de restauración de la siguiente manera:


  1. Envíe el evento PreRestore y espere a que todos los escritores lo procesen.

  2. Restaure los archivos en sus ubicaciones originales.

  3. Envíe el evento PostRestore y espere a que todos los escritores lo procesen.

  4. Detenga el servicio.

  5. Reinicie el servicio.


El escritor especifica previamente el servicio que se va a detener cuando llama al método IVssCreateWriterMetadata::SetRestoreMethod . El solicitante puede obtener el nombre del servicio llamando al método IVssExamineWriterMetadata::GetRestoreMethod .

Comentarios

Un escritor establece el método de restauración en el documento de metadatos del escritor llamando a IVssCreateWriterMetadata::SetRestoreMethod durante la copia de seguridad para especificar su método de restauración deseado en sus metadatos.

Un solicitante recupera el método de restauración solicitado de un escritor llamando a IVssExamineWriterMetadata::GetRestoreMethod y actúa en consecuencia.

El método restore se aplica a todos los archivos de todos los componentes de un escritor determinado.

El método de restauración se puede invalidar por componente en el momento de la restauración si un escritor establece un valor de VSS_RESTORE_TARGET distinto de VSS_RT_ORIGINAL con IVssComponent::SetRestoreTarget.

Un método de restauración de VSS_RME_RESTORE_TO_ALTERNATE_LOCATION sin una asignación de ubicación alternativa definida constituye un error de escritura y el solicitante debe notificarlo como tal.

Cuando un método de restauración requiere una comprobación del estado de los archivos actualmente en el disco (VSS_RME_RESTORE_IF_NOT_THERE, VSS_RME_RESTORE_IF_CAN_REPLACE o VSS_RME_RESTORE_AT_REBOOT_IF_CANNOT_REPLACE), lo ideal es usar operaciones de E/S de archivos para comprobar que se puede restaurar un componente completo antes de continuar realmente con la restauración.

La forma más segura de hacerlo sería abrir exclusivamente (sin compartir) todos los archivos de destino con CreateFile antes de la restauración.

En el caso de VSS_RME_RESTORE_IF_NOT_THERE, también se debe establecer una marca de disposición de creación de CREATE_NEW .

Si las operaciones abiertas se realizan correctamente, la restauración puede continuar y debe usar los identificadores devueltos por CreateFile para escribir realmente los datos restaurados en el disco.

Si no es así, se puede devolver un error ( según el método ) o la asignación de ubicación alternativa activada y (si está disponible) usada, o los archivos de componentes almacenados provisionalmente para la restauración en el siguiente reinicio.

Esto puede ser un problema para componentes muy grandes (algunos de los cuales pueden tener miles de archivos), debido a la sobrecarga del sistema.

En este caso, una opción disponible aunque menos confiable es hacer lo siguiente:

  1. Copie todos los archivos actualmente en disco y que se restauren en una caché temporal.
  2. Intente reemplazar los archivos actualmente en disco por los archivos de copia de seguridad (que podrían estar en el disco en un segundo área temporal o en un medio de copia de seguridad).
  3. Si los archivos no se restauran, finalice la operación de restauración y copie los archivos originales de nuevo desde su ubicación temporal y continúe con la asignación de ubicación alternativa o la restauración en las operaciones de reinicio.
Para obtener más información sobre las ubicaciones de archivos de copia de seguridad y restauración en VSS, consulte Ubicaciones de copia de seguridad y restauración no predeterminadas.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Encabezado vswriter.h

Consulte también

IVssBackupComponents::AddAlternativeLocationMapping

IVssComponent::GetAlternateLocationMapping

IVssCreateWriterMetadata::AddAlternateLocationMapping

IVssCreateWriterMetadata::SetRestoreMethod

IVssExamineWriterMetadata::GetAlternateLocationMapping

IVssExamineWriterMetadata::GetRestoreMethod

IVssWMFiledesc::GetAlternateLocation

VSS_WRITERRESTORE_ENUM