Controlar eventos BackupShutdown

Es posible que una aplicación de copia de seguridad (solicitante) finalice y no genere un evento BackupComplete . La aplicación de copia de seguridad podría bloquearse o finalizarse (por ejemplo, desde el Administrador de tareas) y no poder llamar a IVssBackupComponents::BackupComplete.

Por lo tanto, la infraestructura de VSS (en lugar del solicitante) genera un evento BackupShutdown cada vez que se libera una instancia de IVssBackupComponents que participa en una copia de seguridad, independientemente de si la libera el solicitante o el sistema.

Si una copia de seguridad continúa correctamente, un escritor recibirá un evento BackupComplete seguido de un evento BackupShutdown.

Si la operación se anula (el solicitante genera un evento Abort llamando a IVssBackupComponents::AbortBackup) o produce un error brusco, un escritor puede recibir solo un evento BackupShutdown y es posible que no reciba otros eventos que realicen operaciones de limpieza. Es necesario que un escritor determine si un evento BackupShutdown sigue una secuencia de eventos adecuada o representa un error inesperado de las operaciones de copia de seguridad.

El controlador de eventos BackupShutdown, CVssWriter::OnBackupShutdown, recibe el VSS_ID (GUID) del conjunto de instantáneas de la operación de copia de seguridad que se está cerrando. El escritor puede usarlo para determinar qué operación de copia de seguridad se está cerrando, si ha almacenado el identificador del conjunto de instantáneas durante su secuencia de copia de seguridad (por ejemplo, desde dentro de CVssWriter::OnFreeze, CVssWriter::OnThaw o CVssWriter::OnPostSnapshot) mediante CVssWriter::GetCurrentSnapshotSetId.

Sin embargo, un escritor no debe llamar a CVssWriter::GetCurrentSnapshotSetId desde dentro de CVssWriter::OnBackupShutdown. Además, no se puede llamar a CVssWriter::GetCurrentSnapshotSetId después de que se devuelva CVssWriter::OnPostSnapshot .

Es posible que el escritor participe en varias operaciones de copia de seguridad y, si se llama a un evento BackupShutdown debido a un apagado brusco de un solicitante, el VSS_ID devuelto podría ser el de otra operación de copia de seguridad en la que participaba el escritor.