Share via


Detener servicios para la restauración por parte de los solicitantes

Puede ser necesario que un servicio se detenga antes y se reinicie después de una operación de restauración.

Normalmente, un escritor realizaría la detención e inicio de un servicio para admitir una restauración al controlar el evento PreRestore (con CVssWriter::OnPreRestore) y el evento PostRestore (con CVssWriter::OnPostRestore).

Sin embargo, puede haber casos en los que sea necesario que un solicitante detenga explícitamente un servicio en ejecución. Los escritores indican si este es el caso estableciendo el valor VSS_RME_STOP_RESTORE_START o VSS_RME_RESTORE_STOP_START de la enumeración VSS_RESTOREMETHOD_ENUM como argumento del método restore de una llamada al método IVssCreateWriterMetadata::SetRestoreMethod y especificando el nombre del servicio que se va a detener.

Un solicitante obtiene información sobre el método de restauración y el nombre del servicio que se va a detener al trabajar con metadatos de escritor mediante el método IVssExamineWriterMetadata::GetRestoreMethod .

Es importante que el escritor, al especificar el nombre de un servicio que se va a detener, use el nombre conocido públicamente correcto de ese servicio. Un nombre ambiguo o inexacto puede dar lugar a que los solicitantes detengan el servicio incorrecto o no puedan determinar qué servicio se debe detener.

Después de completar la operación de restauración, los solicitantes deben reiniciar el servicio.

Debe tener cuidado al diseñar e implementar escritores que admitan servicios que los solicitantes deben detener y reiniciar. En concreto, estos escritores no deberían formar parte del servicio, es decir, el propio escritor no debe detenerse y reiniciarse en el transcurso de la operación de restauración.

Un escritor cuyo proceso se detiene tendrá una instancia de escritor diferente al reiniciarse. La nueva instancia del escritor no recibirá eventos vsS destinados a la instancia original del escritor. En concreto, si el proceso de una instancia de escritor se detiene después de controlar un evento PreRestore, la nueva instancia no recibirá el evento PostRestore. Además, VSS generará un error que indica la pérdida de un escritor participante en la operación de restauración y IVssBackupComponents::P ostRestore puede devolver un error.